2011-01-31 3 views
1

Maildirにメッセージを格納したgetmail + maildrop + mutt + msmtpチェーンを使用しています。非常に大きな受信トレイには、私を気にするので、私はそのような日付でメールを整理したい:私は多くをGoogleで検索し、メールフィルタ言語について読みますが、私はこのようなフィルタを書くことのためにまだそれは難しいですしましMaildrop:日付別メールフィルタ:

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"のような月単位でソートしたいのです。 ヘルプ、考え、リンク、資料があれば幸いです。

答えて

1

大部分はmanページを使用して、私はUbuntu 10.04で以下のような解決策を考え出しました。例えば、以下の内容を含むmailfilter-archiveと呼ばmailfilterファイルを作成する:

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 formatであると仮定して)として使用するためにフォーマットされた日付を生成しますメールファイル名

その後、あなたのメッセージをアーカイブするために、既存のメールファイルに次のコマンドを実行します。

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

mail-archive内容が良く見える場合は、メールファイルなどmail1mail2mail3mail4を、削除することもできます。

関連する問題