procmailを使用して "to"で私の名前を含むように電子メールをフィルタリングする

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

質問

Procmailを使用して、私の名前を含まない着信メール( "John Doe")を "To"フィールドに "junk"フォルダに移動します。

しかし、オンラインテストアプリで正規表現を徹底的にテストしたとしても、次の規則はどんな効果もありません。

# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/
.

興味がある場合は、Procmailルールファイル全体が次のとおりです。

# Filter mail using SpamAssassin
:0fw: spamassassin.lock
* < 256000
| /usr/bin/spamassassin

# Filter spam based on "Spam-Level"
:0:
* ^X-Spam-Level: \*\*
.Junk/

# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/
.

なぜ私のルールがうまくいかないのですか?

お手伝いありがとうございました!

役に立ちましたか?

解決

Perl LookaHeadsはProcmailの正規表現レパートリーの一部ではないため、

代わりにこれを試してください。

:0
* ! ^To:.*John[  ]+Doe
.Junk/
.

[]内の空白はスペースとタブにする必要があります。\s Perlismは、どちらもサポートされていません。

電子メールアドレスをフィルタリング基準として使用するのが良いかもしれません、そしておそらくCC:などをカバーするために^TO_ Specialマクロを使用しているかもしれません。

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