Procmailを使用している複数の受信者の場合は、複数のフォルダを電子メールで送信する

StackOverflow https://stackoverflow.com//questions/9617570

  •  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
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top