Postfix 中继给出错误 450,而实际应该是 550

Postfix 中继给出错误 450,而实际应该是 550

我们使用 postfix 进行中继。

我们在 /var/log/mail 中收到了几条类似以下的消息(略有编辑)

Apr 13 13:30:29 linserver postfix/smtpd[1064]: NOQUEUE: reject: RCPT from unknown[$ip]:     450 4.1.1 <[email protected]>: Recipient address rejected: undeliverable address: host domain.be [$ip] said: 550 <[email protected]>: Recipient address rejected: User unknown in virtual mailbox table (in reply to RCPT TO command); from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<BLUESTREAK.domain.local>

现在,当主邮件服务器给出 550 错误,声称用户不存在时,我希望中继也返回 550 错误。现在的情况是,它似乎返回了 450 错误,导致客户端将消息保持在队列中,不断尝试,并且仅在经过一段时间后才通知用户。

据我所知,soft_bounce 可能导致这种情况。但我们没有启用此选项(根据 postfix 文档,默认情况下它是关闭的)它可能也与值​​有关*_reject_code postconf。特别是因为日志消息抱怨未知 ip。但正如您在下面的 postconf 输出中看到的那样,smtpd_sender_restrictionssmtpd_client_restrictions是空的。所以即使如果它会尝试在那里进行任何限制,550 是正在发生的“最严重”错误,所以这就是我希望返回给客户端的错误。

谢谢,

迪特尔

答案1

在 Postfix conf 文件中添加/更改“unknown_address_reject_code = 550”并尝试。

答案2

我将 unverified_recipient_reject_code 设置为 550,似乎可以解决问题

答案3

如果您设置了soft_bounce = yes,所有错误将变为 450 软边界错误,以便发射器在一段时间后重试发送邮件。

这在配置 Postfix 时作为调试预防措施很方便,以便配置错误不会导致无法恢复的邮件丢失。

相关内容