MailDrop:日付ごとにメールをフィルター:ヘッダー
-
27-10-2019 - |
質問
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
, など。メールファイル。