質問

MailDirに保存されたメッセージを使用して、GetMail + MailDrop + Mutt + MSMTPチェーンを使用しています。非常に大きな受信トレイが私を悩ませているので、私はそのような日付までにメールを整理したかった:

Maildir
|-2010.11->all messages with "Date: *, * Nov 2010 *"
|-2010.12->same as above...
|-2011.01
`-2011.02

私はたくさんグーグルで検索し、MailFilter言語について読んだことがありますが、それでもそのようなフィルターを書くのは難しいです。 MailDropのメーリングリストアーカイブには、これについてほとんど何もありません(私がスキャンした限り)。いくつかのセミソリューションがあります https://unix.stackexchange.com/questions/3092/organize-email-by-using-procmail-or-maildrop, 、しかし、私はそれが好きではありません。なぜなら、私は「日付:」ヘッダーと私は月ごとに「year.month」のような月ごとに数字で並べ替えたいので、私はそれが好きではありません。助け、思考、リンク、資料は大歓迎です。

役に立ちましたか?

解決

主に使用します man ページでは、Ubuntu 10.04で使用するための次のソリューションを思いつきました。 aを作成します mailfilter たとえば、呼び出されたファイル mailfilter-archive 次のコンテンツで:

DEFAULT="$HOME/mail-archive"
MAILDIR="$DEFAULT"

# Uncomment the following to get logging output
#logfile $HOME/tmp/maildrop-archive.log

# Create maildir folder if it does not exist
`[ -d $DEFAULT ] || maildirmake $DEFAULT`

if (/^date:\s+(.+)$/)
{
    datefile=`date -d "$MATCH1" +%Y-%m`
    to $DEFAULT/$datefile
}

# In case the message is missing a date header, send it to a default mail file
to $DEFAULT/inbox

これはを使用します date コマンド、 date 入力としてのヘッダーコンテンツ(ITであると仮定します RFC-2822形式)およびメールファイル名として使用するフォーマット日付を作成します。

次に、既存のメールファイルで以下を実行して、メッセージをアーカイブします。

cat mail1 mail2 mail3 mail4 | reformail -s maildrop mailfilter-archive

場合 mail-archive 内容は見栄えがよく、削除できます mail1, mail2, mail3, mail4, など。メールファイル。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top