![Postfix 拒绝传入的退回通知(收件人地址被拒绝:本地收件人表中的用户未知)](https://linux22.com/image/650636/Postfix%20%E6%8B%92%E7%BB%9D%E4%BC%A0%E5%85%A5%E7%9A%84%E9%80%80%E5%9B%9E%E9%80%9A%E7%9F%A5%EF%BC%88%E6%94%B6%E4%BB%B6%E4%BA%BA%E5%9C%B0%E5%9D%80%E8%A2%AB%E6%8B%92%E7%BB%9D%EF%BC%9A%E6%9C%AC%E5%9C%B0%E6%94%B6%E4%BB%B6%E4%BA%BA%E8%A1%A8%E4%B8%AD%E7%9A%84%E7%94%A8%E6%88%B7%E6%9C%AA%E7%9F%A5%EF%BC%89.png)
所以我设置了一个 postfix 电子邮件服务器,我可以发送,我可以接收。但我注意到我的日志中有一些有趣的活动。我正在测试一个意外发送到不存在的电子邮件地址的邮件,现在另一个域上的邮件服务器正在尝试(不放弃)发送失败的传递通知。
对于此示例,我的域名是 example.com,我发送电子邮件的域名是 example.net,我向无效的地址发送了一封电子邮件。当然,example.net 邮件服务器会说“嘿,这个地址不存在”,并想向我返回一封电子邮件,说这个地址不存在。以下是日志
Jan 27 08:50:37 UBUNTU-SRV postfix/smtpd[10508]: connect from remote.example.net[12.34.56.78]
Jan 27 08:50:37 UBUNTU-SRV postfix/smtpd[10508]: NOQUEUE: reject: RCPT from remote.example.net[12.34.56.78]: 450 4.1.1 "[email protected]": Recipient address rejected: User unknown in local recipient table; from=<> to= "[email protected]" proto=ESMTP helo= "mail.otherdomain.local"
Jan 27 08:50:37 UBUNTU-SRV postfix/smtpd[10508]: disconnect from remote.example.net[12.34.56.78]
我的直觉是,我的服务器会说,“[电子邮件保护]“有用户帐户吗?”答案显然是否定的,所以它拒绝了。这些日志已经运行了一天,大约每分钟一次。
有什么想法可以将这封电子邮件放入正确的邮箱,或者至少将所有这些东西路由到我的邮箱上的目录中?
答案1
远程服务器按照 SMTP 规范 RFC 2821 运行,特别是在第 4.2.1 节。由于您使用代码 450 拒绝,因此远程服务器将重试发送,直到队列过期。引自 RFC
4yz 瞬态否定完成答复
命令未被接受,且请求的操作未发生。 然而,错误情况是暂时的,可能会再次请求该操作。 发送者应返回到命令序列的开头(如果有)。当两个不同的站点(接收方和发送方 SMTP 代理)必须就解释达成一致时,很难为“瞬时”赋予含义。此类别中的每个回复可能具有不同的时间值,但鼓励 SMTP 客户端重试。确定回复是否适合 4yz 或 5yz 类别(见下文)的经验法则是,如果回复在不改变命令形式或发送方或接收方的属性的情况下重复,回复仍能成功,则回复为 4yz(即,命令重复相同,接收方不提出新的实现)。
现在的问题是你的服务器配置了,所以它给出了回复代码450 暂时拒绝反而550 永久拒绝。
由于您尚未共享 postfix 配置,因此我们无法确定导致该行为的配置。您可以开始检查以下这些参数,并检查该参数是否显示在 的输出中postconf -n
。