Centos を使用した Postfix での正規表現

Centos を使用した Postfix での正規表現

postfix のみを実行している Centos サーバーがあります。gratisまたはgrátisまたはgrétisまたは という単語を含むメールをフィルタリングしたいと考えていますgrâtis

2 番目の文字が問題です。そこで、次の rejex を使用しました。

/^Subject:.*gr.tis/ REJECT Your message was rejected

問題は、「ドット」が接尾辞付きの特殊文字と一致しないことです。つまり、gratis件名にその単語を含むメールを送信すると、フィルターされます。しかし、grátisその単語を含むメールを送信すると、フィルターされません。

この問題をどうやって解決すればいいでしょうか?

答え1

スパムのサンプルをファイルに保存し、、、、などを使用して調べます。Subject cat -A:ヘッダーに実際に何バイトあるかを確認するために必要なことは何でも行いsed -n lます。hexdumphdod

例えば

grep '^Subject:' /tmp/saved.spam | sed -n l

これにより、header_checks ファイルに入れる正確な正規表現を作成できます。

答え2

以下をお試しください:

/^Subject:.*gr.{1,2}tis/ REJECT Your message was rejected

代わりに。おそらくエンコードのバグでしょう。

関連情報