Postfix 使用临时错误代码表示永久错误

Postfix 使用临时错误代码表示永久错误

Postfix 对于“中继访问被拒绝”返回临时错误代码 (4xx) 而不是永久错误代码 (5xx),这导致 MX 不断重试:

日志:

postfix/smtpd[14279]: connect from unknown[10.244.x.x]
postfix/smtpd[14279]: NOQUEUE: reject: RCPT from unknown[10.244.x.x]: 454 4.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mx.somewhere.com>
postfix/smtpd[14279]: disconnect from unknown[10.244.x.x]

相关配置:

smtpd_recipient_restrictions =
        reject_unauth_destination
        reject_unknown_reverse_client_hostname,
        reject_invalid_helo_hostname,
        reject_non_fqdn_helo_hostname,
        reject_non_fqdn_sender,
        reject_non_fqdn_recipient,
        reject_unknown_sender_domain,
        reject_unknown_recipient_domain,
        reject_invalid_hostname,
        reject_rbl_client zen.spamhaus.org,
        permit

virtual_alias_domains = example.com
virtual_alias_maps = hash:/etc/postfix/virtual

我希望 Postfix 回复 554 错误,这样远程服务器就不会重试那些永远不会起作用的操作。

答案1

数字响应代码reject_unauth_destination由参数定义relay_domains_reject_code,但这是默认的。554已经。因此我怀疑reject_unauth_destination您的服务器上从未触发过。请检查(略新)的当前配置值smtpd_relay_restrictions参数输入:

postconf smtpd_relay_restrictions

这些中继限制已检查您的收件人限制,其默认为:

permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination

此默认设置defer_unauth_destination将发送- 永久错误代码。如果是这种情况,只需更改配置并将reject_unauth_destination置于中继限制之下。您现在可以将其从收件人限制中删除:

smtpd_relay_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_unauth_destination
smtpd_recipient_restrictions =
    reject_unknown_reverse_client_hostname
    reject_invalid_helo_hostname
    reject_non_fqdn_helo_hostname
    reject_non_fqdn_sender
    reject_non_fqdn_recipient
    reject_unknown_sender_domain
    reject_unknown_recipient_domain
    reject_rbl_client zen.spamhaus.org
    permit

我还删除了它,因为这是您已经指定的值reject_invalid_hostname的旧名称(Postfix <2.3) 。reject_invalid_helo_hostname

您可以在此处找到所有限制列表的说明、检查限制的顺序以及何时跳过限制:Postfix SMTP 中继和访问控制

答案2

Hostname 似乎没有您的 SMTP 可以解析的指定服务器中的 DNS 记录。因此,SMTP 会根据 Postfix 的 SMTP 配置“reject_unknown_reverse_client_hostname”阻止它。

因此,请尝试添加您要从 SMTP 服务器中继电子邮件的主机的 DNS 条目。

否则,尝试删除与检查 FQDN 相关的参数,或者可能还需要检查域相关的内容。

相关内容