Procmailを使用している複数の受信者の場合は、複数のフォルダを電子メールで送信する
-
09-12-2019 - |
質問
家に電子メールシステムを構築するつもりで、私は多くのメーリングリストを購読しています。FetchMailによって自分のローカルマシンにフェッチされ、Procmailによってフィルタリングされた電子メール。しかし、現在の知識と解決できない状況があります。私は2~3時間の間グーグルをしていませんでした結果もありません。
私が欲しいのは、私は複数の受信者を持つ電子メールを受け取り、この電子メールをさまざまなフォルダにコピーしたいと思います。これが例です。
Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org
.
この電子メールをLinux-KernelおよびLinux-Kernel-Janitorsフォルダに入れたいと思います。Procmailでどうすればいいですか?
事前にありがとう!
解決
SWITCHRC=
を使用して受信者のリストにProcmailループを作成できますが、これはかなりハッキッシュです。あるいは、プロセスしたいフォルダのリストが限られている場合は、それぞれ別々に配信し、少なくとも1回配信した場合はメッセージをドロップできます。
LASTFOLDER=
:0c:
* ^TO_linux-kernel@vger\.kernel\.org\>
linux-kernel
:0c:
* ^TO_kernel-janitors@vger\.kernel\.org\>
kernel-janitors
# ... repeat for other addresses you want to multiplex ...
# If it was delivered, LASTFOLDER will be set
:0
* LASTFOLDER ?? .
/dev/null
.
このセクションに到達する前に追加の受信ボックスにコピーした可能性がある場合は、LASTFOLDER
を空の文字列に明示的に設定します。それ以外の必要はありませんが、私はそれを予防策として残しました。(この変数には、メッセージが配信された最新のフォルダの名前が含まれています。)
他のヒント
解決策はこのように見えます:
まず、if文は、私の.procmailrcファイルにカーネルメーリングリストフィルタの条件が含まれていないため、IFステートメントが必要です。それが一致する場合は別の条件リストがあります。私はそれがよりきめ細かくなる時が思います。
:0
* [To|Cc].*vger.kernel.org
LASTFOLDER=
:0Ac:
* ^[To|Cc].*linux-janitors@vger.kernel.org
| DoItSomethingWithIt
:0Ac:
* ^[To|Cc].*linux-kernel@vger.kernel.org
| DoItSomethingWithIt2
:0
* LASTFOLDER ?? .
| DoItSomethingWithIt3
. 所属していません StackOverflow