
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
ます。hexdump
hd
od
例えば
grep '^Subject:' /tmp/saved.spam | sed -n l
これにより、header_checks ファイルに入れる正確な正規表現を作成できます。
答え2
以下をお試しください:
/^Subject:.*gr.{1,2}tis/ REJECT Your message was rejected
代わりに。おそらくエンコードのバグでしょう。