1

Maildirに保存されたメッセージでgetmail + maildrop + mutt + msmtpチェーンを使用しています。非常に大きな受信トレイが気になるので、次のように日付ごとにメールを整理したいと思いました。

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

私はよくググってメールフィルター言語について読んだことがありますが、それでもそのようなフィルターを書くのは難しいです。Maildrop のメーリング リスト アーカイブには、これに関する情報はほとんどありません (私が調べた限りでは)。https://unix.stackexchange.com/questions/3092/organize-email-by-date-using-procmail-or-maildropにはいくつかの半解決策がありますが、使いたいので好きではありません"Date:" ヘッダーと "YEAR.MONTH" のように数字で並べ替えたい。ヘルプ、考え、リンク、資料をいただければ幸いです。

4

1 に答える 1

1

ほとんどmanのページを使用して、Ubuntu 10.04 で使用する次のソリューションを思いつきました。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ヘッダーの内容を入力として受け取り ( RFC-2822 形式であると仮定)、メールファイル名として使用するフォーマットされた日付を生成します。

次に、既存のメール ファイルに対して次のコマンドを実行して、メッセージをアーカイブします。

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

mail-archive内容に問題がなければ、、、、、などのメール ファイルmail1を削除できます。mail2mail3mail4

于 2011-12-20T19:22:43.430 に答える