で作成されたメールボックスファイル(「Mboxrd」)があり、getmail
さまざまな送信者(グループ)のメッセージを並べ替え、それを別々のメールボックスファイル(おそらく3〜5個)に移動してそれを「処理」したいと思います。理想的には、移動したメールメッセージを元のメールボックスファイルから削除する必要があります。
送信者アドレスに基づいてメッセージを並べ替えたいと思います。ただし、トピック(特定の単語/フレーズなど)でメッセージを並べ替えることができると便利です。
getmail
これで、メールを受け取ったマイコンピュータのMTAであれば - またはMTAにメールを送信するように設定した場合 -procmail
一般的な方法を使用できるようですが...しかし、私が得たのは「死んだ」ファイルです。メールメッセージが保存されるため、これはオプションではありません。 MTAを介してメールを送信できるようですが、メールをそのまま(ファイルとして)処理する方法はありますか?
procmail
それでは、メールボックスファイルのメッセージをメッセージの送信者/件名に基づいて複数の異なるメールボックスファイルに「並べ替える」ことができるプログラムまたはコマンド(またはいくつかの特別なオプションまたは類似)がありますか?設定ファイルなどの小さな例にも感謝します。
ベストアンサー1
このformail -s
方法はデモスクリプトで文書化されています。procmail
マニュアルページ;このフレーズを探してください:
Procmailを呼び出すことで、満たされたシステムメールボックスを後処理することもできます。
あなたもこれを見つけるでしょうhttp://www.iki.fi/era/procmail/mini-faq.html#split
メールボックスが個々のファイルを含むBerkeley mboxではない場合は、各ファイルが別々のメッセージであるディレクトリがある可能性があります。この場合、簡単に処理できます。
for f in folder/*; do
procmail -options <"$f"
# maybe rm "$f" to remove the original after processing completes
done
送信者に基づいてフィルタリングする方法の例として、簡単なレシピは次のとおりです。
# If your mailbox destination is maildir, no locking is required
:0: # so you could lose the second colon here, and in subsequent examples
* ^From:.*\<alice@example\.com\>
alice
:0:
* ^From:.*\<bob@example\.net\>
bob
これは通常、人々が「Sender」と意味する「From:」ヘッダーをチェックします。一般的に使用される他の2つのフィールド(Envelope Sender、通常はにあります)がありますが、Return-Path:
実際のSender:
ヘッダーはオプションですが、From:
ヘッダーがいっぱいになるときによく使用されます。実際の発信者でない場合は、発信ソフトウェアによって)。
同様に、分類するには、Subject:
キャプチャするトピックに一致する正規表現を指定するだけです。
:0:
* ^Subject: *((Fwd?|Re): *)*\[gunk]
gunk-list
[gunk]
タイトルヘッダーには、オプションで空白および/またはおよび/またはおよび/またはRe:
前にFw:
ラベルが付いたメッセージが検索されますFwd:
。