メールボックスファイルでメールを処理/並べ替えますか?

メールボックスファイルでメールを処理/並べ替えますか?

で作成されたメールボックスファイル(「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:

おすすめ記事