
私はUbuntu Serverでpostfix-pcreを使用しています。以下のコマンドでheader_checksの設定をテストすると
postmap -q 'To: "Markus Schlei" <[email protected]>' regexp:/etc/postfix/header_checks
次の警告メッセージが表示されます。
postmap: 警告: 正規表現マップ /etc/postfix/header_checks、行 36: 先行する正規表現が無効です。
また、テストは拒否されません。 36 行目に次のコードがあります:
/^To:.*\@(?!(gmail\.com)).*/ REJECT Test-Nr-1
一致しないメッセージをすべて拒否したいgmail.com
編集1: 「(?!(..)" 警告メッセージは消えましたが、私の望みとは逆の結果になりました。
答え1
POSIX 正規表現と PCRE 正規表現があることを知っておく必要があります。
使用しています否定先読み(?!
) とともに正規表現テーブル。このタイプの正規表現は、PCRE 正規表現テーブルでのみサポートされます。
Postfix システムがサポートする検索テーブルの種類を確認するには、「postconf -m」コマンドを使用します。
pcreがリストされている場合は、regexpテーブルの代わりにpcreテーブルに切り替えてください。そうでない場合は、インストールする必要があります。postfix-pcre。