受信者アドレスのprocmailrc-Killfile?


2

procmailrc(スパムのみを受信する一時アドレス)を使用して、特定の受信者アドレスを持つメールをブロックしたい。

killfile / blacklistを使用するためのコードサンプルを見つけましたが、送信者アドレス(FROM)にのみ適用されます。

FROM=`formail -xFrom: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'`
:0

* ? fgrep -qxis $FROM $PMDIR/killfile

/dev/null

受信者アドレス(TO)に適用されるようにこのコードを調整するにはどうすればよいですか?テキストファイル内の不要な受信者アドレスを単純に一覧表示できるのは本当に素晴らしいことです。

私はRegExに非常に慣れていないので、わかりやすい答えに感謝しています。

私の目標は、ブロックされるアドレスを単純にリストすることです。

one@example.com
two@secondexample.net

procmailrcでは、そのようにしなければなりません。

:0:
* ^To.*one@example.com
/dev/null

:0:
* ^To.*two@secondexample.net
/dev/null

これは、新しいアドレスを入力する場合ははるかに面倒です。


1
あまり多くない場合は、 "^ TOspam1 ... / dev / null"スタンザの束でインクルードファイルを作成するだけの誘惑に駆られます...
Jeff Schaller

@JeffSchaller提案をありがとう(まだ理解していない場合でも)。しかし、残念ながら100を超えるアドレスがあります。
PeterCH

procmailrcではなく、スパム宛先アドレスがファイル内にあることが必要ですか?
ジェフシャラー

@JeffSchallerいいえ、それは本当に問題ではありません。キルファイルに次のようにアドレスを入力できるというだけです。one@example.com two@secondexample.net procmailrcでは、そうする必要があります。:0:* ^To.*one@example .com / dev / null:0:* ^To.*two@secondexample.net / dev / nullこれは、新しいアドレスを入力するのにより面倒です。
PeterCH

質問に説明を追加したので、より明確になります
PeterCH

回答:


1

テストするprocmailを手元に持っていませんが、ここに1つのアプローチがあります。

:0
* ^TO_(one@example\.com|two@example\.com|three...)
/dev/null

アイデアは、すべてのスパム宛先アドレスを「^ TO_」マジック正規表現の代替/可能性として置くことです。いずれかのスパムアドレスが一致すると、電子メールは/ dev / nullに送信されます。電子メールアドレスのピリオドは、通常の正規表現の意味である「任意の1文字」を保持するのではなく、ピリオドに一致するようにエスケープしました。実際には問題になることはまずありません。スパムアドレスは、「one @ exampleJcom」(その他のランダムな文字を表す「J」)宛てのメールを受信する可能性が低いためです。

この方法が気に入っているのは、処理がシンプルかつprocmail内で維持されるためです。

スパムターゲットのリストが頻繁に変更される場合、INCLUDERC各スパムターゲットの「/ dev / null」レシピを含む生成ファイルをプルするなど、別のアプローチを検討します。

「2つ以上の条件の論理ORを実行するにはどうすればよいですか?」で、質問のProcmailよくあるご質問は、カバーone|two|threeの構文を。^TO_構文はで説明されてProcmailのクイックリファレンスまたはお近くで男procmailrc


1
リストなど^TO_は、ディスクファイルなどから作成できますaddrs=`tr '\n' '|' <killfile`; addrs="(${addrs}completelyunlikelystring)
トリプリー

1

見つけたレシピは、To:アドレスを抽出するように簡単に調整できます。

TO=`formail -xTo: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'`
:0
* ? fgrep -qxis "$TO" killfile
/dev/null

もちろん、これを抽出CC:して他の多くの受信者ヘッダーにも拡張できます。しかし、適切な解決策は、そもそも受信トレイに配信しないようにこれらのアドレスを構成することです。


ありがとうございました。これは非常に良い解決策のように見えます。キャッチオールドメインを使用しているため、アドレスが作成されました。インターネットのどこかに新しい登録があるたびに、新しい個別のアドレスを使用します。アドレスがいつか悪用される場合は、この方法でブロックできます。私の古いwebhosterでは、Webインターフェイスを介してこれを行うのは非常に簡単でした。私の新しいwebhosterはprocmailrcのみを提供します。ソリューションにCCアドレスを追加するのは非常に複雑ですか?Bccアドレスはほとんど機能しません。または?しかし、これまでのところ、これらは私の個人的な経験ではスパマーによってめったに使用されません。www.DeepL.com/Translatorで翻訳
PeterCH

おそらく、私のコメントで、ジェフのソリューションはすでにそれに対処しています。Bccを処理する正しい方法はありません。これが、以前のブロックがより良い解決策になる理由の1つです。
トリプリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.