Main.cf設定があります:
header_checks = regexp:/etc/postfix/header_checks
そして/etc/postfix/header_checks
:
/^Subject:.*viagra.*/i DISCARD
/^Subject:.*pills.*/i DISCARD
/^Subject:.*f\*ckbuddy.*/i DISCARD
/^Subject:.*f\*ckfriend.*/i DISCARD
/^Subject:.*f\@ck.*/i DISCARD
/^From:.*viagra.*/i DISCARD
大文字と小文字を区別しないように/i
を追加したことに注意してください。これが可能かどうかわかりませんか?
件名に丸薬が含まれているhotmailからサーバーにメールを送信しようとしましたが、まだうまくいきません!また、DISCARD
の代わりに送信者への戻りメソッドがありますか?
postmap -q "<put test header here>" regexp:/etc/postfix/header_checks
が正しくDISCARD(または一致する適切なアクション)を返しているが、postfixが実際にそのアクションを実行していない場合、receive_override_options=no_header_body_checks
またはmain.cf
のどこかに、ヘッダーチェックをオフにしているmaster.cf
がある可能性があります。 master.cf
ファイルでは、サービス構成エントリの1つにある-o
オプションになります。
receive_override_options
には4つのオプションがあります。
- no_unknown_recipient_checks不明な受信者を拒否しないでください(SMTPサーバーのみ)。これは通常、外部コンテンツフィルターの後で指定されます。
- no_address_mappings正規アドレスマッピング、仮想エイリアスマップ拡張、アドレスマスカレード、および自動BCC(ブラインドカーボンコピー)受信者を無効にします。これは通常、外部コンテンツフィルターの前に指定されます。
- no_header_body_checks header/body_checksを無効にします。これは通常、外部コンテンツフィルターの後で指定されます。
- no_milters Milter(メールフィルター)アプリケーションを無効にします。これは通常、外部コンテンツフィルターの後で指定されます。
no_address_mappings
オプションは通常main.cf
にあり、他のオプションはmaster.cf
にあります。
"-o receive_override_options"はmain.cf設定を上書きして、コンテンツフィルターの前にすでに行われた作業の重複を回避します。これらのオプションは、main.cfで指定されているオプションを補完します。
header_checks(5)マニュアルページには、しばらくの間、すべての正規表現のデフォルトは大文字と小文字を区別しないものとして表示することであるという段落があります。
互換性
Postfixバージョン2.2以前では、「postmap -fq」を指定して、大文字と小文字を区別するパターンを含むテーブルをクエリします。デフォルトでは、regexp:およびpcre:パターンは大文字と小文字を区別しません。
したがって、正規表現にフラグを追加しても問題は解決しません。
他の人が述べたように、あなたの最初のステップはそれがで動作することを確認することです:
postmap -q "<string to test--i.e. Subject: Viagra>" /etc/postfix/header_checks.re
出力はラインのアクションになります。 (あなたのケースではDISCARD
)
それが機能する場合は、他の人が述べたように、ヘッダーを含める行が含まれていないか、含めることができない行が不足している可能性があります。
header_checks = regexp:/etc/postfix/header_checks.re
あなたはそこにその行があると言っているので、後者は多くの問題です。
.re
拡張子。それは重要ではないと思いますが、ファイルに何が含まれているかを知るために、なんらかの拡張子を付けることをお勧めします。
regex:
およびpcre:
パターンは、デフォルトでは大文字と小文字を区別しません。ただし、i
フラグは機能します。REJECT
の代わりにDISCARD
を使用できます。postmap /etc/postfix/header_checks
を使用してPostfixをリロードしましたか?可能であれば、pcre
正規表現を使用すると、通常、Posix実装をregexp:
で使用するよりも高速になります。 header_checks = pcre:/etc/postfix/header_checks
を使用
ログファイルは何を言っていますか?
@ HZCが言うように、それは-o receive_override_optionsの問題である可能性があります。私はここで同じ問題を抱えていました: 私の問題 そして、ポスト regexp適切なセットアップを使用したpostfix header_checks に従って解決しました。私のケースは[〜#〜] reject [〜#〜]ではなく[〜#〜] discard [ 〜#〜]。スパマーをごまかしたい場合にDISCARDを使用すると、スパマーは通知を受け取りません。これについての詳細は、 このリンク にアクセスして、REJECTS ACTIONSセクションを参照してください。
廃棄eストラクチャ:
DISCARD optional text...
Claim successful delivery and silently discard the message. Log
the optional text if specified, otherwise log a generic message.