Procmail:同じアドレスから同じアドレスに送信されたEメールを見つけますか?

Procmail:同じアドレスから同じアドレスに送信されたEメールを見つけますか?

同じアドレスの電子メールを含むフィールドを検索するprocmail方法(または他の方法)はありますか?レシピのすべての電子メールアドレスをハードコーディングせずに実行できますか?from:to:

基本的に私は自分のアドレスに送信した電子メールの送信者を見つけて、他の人の電子メールをBCCしようとしています。一般的に私はそれを使用しnotmuchて満足していますが、ここで達成したいことを達成していません。notmuch一緒に働くことができるので、実際に知っている人が助けてくれることを願っていますprocmailprocmailしたがって、これを行うために全く新しいろ過システムを学ぶ必要はありません。

答え1

やや曖昧なProcmail機能が必要ですが、可能です。そしてもちろん、達成したいことが何であるかを理解する必要があります。

:0
*   ^From:[     ]*\/[^  ].*
* $ ^To:[   ]*$\MATCH
{ ... actions ... }

キャプチャ\/演算子は、一致する文字列を特殊変数として収集しますMATCH。次の行では、To:ヘッダーから同じ文字列を検索します。リテラル一致のために、文字列の正規表現特殊文字にエスケープされた正規表現を含むキャプチャされた$MATCH文字列が含まれています。 Procmail変数を正規表現として挿入するには、$\MATCHレシピに修飾子が必要です。$

これは一般的な[ ]*(スペースまたはタブ、ゼロ以上)を使用してコロンの後のスペースをスキップし、スペースではなく最初の文字で始まるすべてを取得します。

実際、これはFrom:ヘッダーとTo:ヘッダーの内容が同じでなければならないことを意味します。送信者が別の「本名」(技術的には説明のみ)を入力した場合、このレシピは一致しません。例えば、

From: Myself <[email protected]>
To: Everyone <[email protected]>

ここで電子メール端末は同じですが、フィールド全体が異なります。この状況を処理する必要がある場合は、<前の最初の正規表現と一致するように正規表現を変更できますが、\/これは一致する必要がある正確な文字列によって異なり、可能なバリエーションがたくさんあります。

関連情報