いくつかのスパム学習ドメインをブラックリストに登録するために、接尾辞helo_restrictionsを使用しています。そのうちの1つは、ドメインの電子メールアドレスは必要だが、メールサーバーを実行したくない人々に電子メールサービスを提供するサービスです。 check_helo_accessファイルでそのサービスをブロックしています:
domainemailsvc.net拒否スパムはご遠慮ください。
しかし残念ながら、同じサービスを介して正当なメールを送信する人が何人かいます。 check_helo_accessからその行を削除して、spamassassinがその仕事をすることを期待する必要がありますか、それともこれらの特定の電子メールアドレスまたはサブドメインをホワイトリストに登録する方法がありますか?
友人([email protected])からのメッセージのログファイルエントリの例:
Sep 16 11:27:41 myserver postfix/smtpd[19223]: NOQUEUE: reject: RCPT from
bosmailout01.domainemailsvc.net[xx.xx.xx.xx]: 554 5.7.1
<bosmailout01.domainemailsvc.net>: Helo command rejected: No spam please.;
from=<[email protected]>
to=<[email protected]> proto=ESMTP helo=<bosmailout01.domainemailsvc.net>
Check_helo_accessファイルに次のものを追加してみました。
tomsdomain.com OK
[email protected] OK
...しかし、それはうまくいかないようです。
私を正しい方向に向けてくれた@malcolmpdxに感謝します。 sender_accessは、実際には、いくつかの基本的な正規表現を使用してこれを実現する方法です。
main.cf内:
smtpd_sender_restrictions = check_sender_access pcre:/etc/postfix/sender_access
sender_access内:
/^.*[email protected]$/ OK
/^.*domainemailsvc.net$/ REJECT
EHLO/HELO SMTPコマンド(check_helo_accessのものが機能するもの)は、データとしてホスト名のみを持っているため、この特定のフィルターが操作できるのはそれだけです。したがって、check_helo_accessファイルを使用して、ブロックしているホスト名/ドメインからの特定の送信者を許可することはできません。
このドメインの特定のユーザーからメールを受け取りたい場合は、check_helo_accessで許可する必要があります。
次に、思い出すと、sender_accessを使用して、特定のアドレスを許可し、このドメインからの他のすべてをブロックできます。
Postfixでこれらのチェックを考える良い方法は、それぞれがSMTP会話の特定の部分で動作することです-次に、特定のデータがあります。ドメインはHELOと連携します。 RCPT TOには、配信用のローカルアドレスが含まれます。 MAIL FROMには、送信者アドレスが含まれます。などなど。フィルタリングするSMTP会話の部分を特定し、それに関連付けられているPostfixチェックを使用します。