0

自宅でメールシステムを構築し、たくさんのメーリングリストに登録しています。fetchmailによってローカルマシンにフェッチされ、procmailによってフィルタリングされた電子メール。しかし、私の現在の知識では解決できない状況があります。私は何の結果もなく解決策を見つけるために2〜3時間グーグルしてきました。

私が欲しいのは、複数の受信者がいるメールを受け取り、このメールを別のフォルダにコピーしたいということです。次に例を示します。

Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org

このメールをlinux-kernelおよびlinux-kernel-janitorsフォルダーに入れたいと思います。どうすればprocmailでそれを行うことができますか?

前もって感謝します!

4

2 に答える 2

1

を使用して、受信者のリストで Procmail をループさせることができますがSWITCHRC=、これはかなりハックです。または、処理するフォルダーのリストが限られている場合は、それぞれに個別に配信し、少なくとも 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に空の文字列に設定する必要があります。それ以外の場合は必要ありませんが、念のため残しました。(この変数には、メッセージが配信された最新のフォルダーの名前が含まれています。)

于 2012-03-09T08:00:06.690 に答える
0

解決策は次のようになります。

まず、.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
于 2012-03-10T15:02:22.393 に答える