Postfix - 特定のヘッダー値を持つメッセージをリレーホストから除外しますか?

Postfix - 特定のヘッダー値を持つメッセージをリレーホストから除外しますか?

Postfix 内のすべてのメッセージを PostMarkApp.com に中継するには、次の基本設定から始めます。

#start postmarkapps settings
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:secret:secret (where "secret is your API key")
smtp_sasl_security_options = noanonymous
relayhost = [smtp.postmarkapp.com]:25
#end postmarkapp settings

これの問題は、たとえば何かがエラー メッセージを吐き出し始めると、それらはすべて PostMark を経由することになり、コストがかかることです。

回避する方法の 1 つは、特定のアドレスをrelayhost設定しsender_dependent_relayhost_mapsて yourdomain.com にマップすることです。ただし、すべてのメッセージが同じユーザーから送信され、From ヘッダーが異なる Web アプリでは、この方法は機能しません。

sender_dependent_relayhost_mapsでは、ユーザーだけではなく、From または Subject ヘッダーを調べて、 と同じ効果を実現するにはどうすればよいでしょうか?

答え1

Postfix 2.5 以降が必要です。

次にmain.cfセットでsmtp_header_checks = pcre:/etc/postfix/dont_relay_this_header

/etc/postfix/dont_relay_this_header書面で

/^Subject:.*viagra/  REJECT You are not allowed to send out advertisement

必要に応じてdont_relay_this_headerファイルの内容を変更します。詳細については、ヘッダーチェックマニュアル。

答え2

私は反対側から攻撃することでこれを解決しました。つまり、特定の受信者にリレーホスト経由でメールを送信しないようにしました。

編集/etc/postfix/main.cf

#start postmarkapps settings
transport_maps = hash:/etc/postfix/transport
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:secret:secret (where "secret is your API key")
smtp_sasl_security_options = noanonymous
relayhost =
#end postmarkapp settings

編集/etc/postfix/transport

[email protected] :
* smtp:[smtp.postmarkapp.com]:25

そして走りますpostmap /etc/postfix/transport

今ではすべてのエラーメッセージを[メールアドレス]PostMark 経由で送信されません。

関連情報