2012-03-08 23 views
0

私は自宅でメールシステムを構築する予定です。多くのメーリングリストに登録しています。電子メールはfetchmailによってローカルマシンに取得され、procmailによってフィルタリングされます。しかし、私の現在の知識では解決できない状況があります。私は何の結果もなしに解決策を見つけるために2〜3時間グーグルで行ってきました。複数の受信者の場合、procmailを使用して複数のフォルダにメールを送信

私が欲しいのは、複数の受信者がいるメールが届きました。このメールを別のフォルダにコピーしたいと思います。私は、LinuxカーネルとLinuxカーネル - 管理人のフォルダにこのメールを入れたい

Cc: [email protected], [email protected] 

:ここでは一例です。 procmailでどうすればいいですか?

ありがとうございます!

答えて

1

SWITCHRC=を使用すると、受信者一覧にProcmailループを作成できますが、これはむしろハイキックです。また、処理したいフォルダのリストが限られている場合は、個別に配信し、メッセージを少なくとも1回配信した場合は削除することができます。

LASTFOLDER= 
:0c: 
* ^[email protected]\.kernel\.org\> 
linux-kernel 
:0c: 
* ^[email protected]\.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を設定します。そうでなければ必要ないはずですが、予防措置として残しました。 (この変数は、最新のメッセージがに配信されたフォルダの名前が含まれています。)ソリューションは、このようになります

+0

私の最初の試みは答えではありませんでした。私が書いた直後に自分の返信を読むと、再訪したいと考えています。申し訳ありません。 – tripleee

+0

あなたはちょっとハッキリしているようですが、私の問題を解決できると思います。私は試してみるつもりです、私は結果についてあなたにここでお知らせします。大変ありがとうございました! – SayusiAndo

0

:すべての

まず私の.procmailrcファイルがない含まれているため、If文がちょうどカーネルメーリングリストを必要とされていますフィルタ条件をリストします。一致する場合は、別の条件リストがあります。私はそれがより細かくなると思う。

:0 
* [To|Cc].*vger.kernel.org 
    LASTFOLDER= 

    :0Ac: 
    * ^[To|Cc].*[email protected] 
    | DoItSomethingWithIt 

    :0Ac: 
    * ^[To|Cc].*[email protected] 
    | DoItSomethingWithIt2 

    :0        
    * LASTFOLDER ?? . 
    | DoItSomethingWithIt3 
+0

'[To | Cc]'の正規表現は正しくありません。列挙された 'T'' o'''''''c'の1文字にマッチします(大文字と小文字を区別しないので、大文字のCは省略しています)。私はあなたの特別なマクロ '^ TO_'を私の応答のようにしたいと思います。 – tripleee

+0

ああ、パイプアクションの場合は、名前付きのロックファイルが必要です。言い換えれば、納品行為の第2コロンは間違っています。 http://www.iki.fi/era/procmail/mini-faq.html#locking – tripleee

+0

ああ!ありがとう!私はそれらを修正するつもりです! – SayusiAndo

関連する問題