我试图找出为什么 Postfix 拒绝了来自邮件日志是:
NOQUEUE: reject: RCPT from unknown[xxx.xxx.xxx.1]: 450 4.7.1 Client host rejected: cannot find your hostname, [xxx.xxx.xxx.1]; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<yyy.yyy.yyy.yyy>
主机 yyy.yyy.yyy.yyy返回:
yyy.yyy.yyy.yyy has address xxx.xxx.xxx.2
Postfix 是否会因为 IP 不同(xxx.xxx.xxx.1 与 xxx.xxx.xxx.2)而拒绝传入的电子邮件?
非常感谢
答案1
我认为来自未知的 RCPT 可能是一个因素 - 邮件会话应该是这样的:
Out: 220 yourpostfix.yourdomain.com ESMTP Postfix
In: HELO mailserver.senderdomain.com
Out: 250 yourpostfix.yourdomain.com
In: MAIL From: <[email protected]>
Out: 250 Ok
In: RCPT To:<[email protected]>
此时,Postfix 将在 mailserver.senderdomain.com 上执行 DNS 查找,如果查找结果与所连接服务器的 IP 匹配,则将继续,否则在您输入 RCPT TO..... 后,您将得到:
Out: 450 Client host rejected: cannot find your hostname, [x.x.x.x]
解决此问题的真正方法是确保您可以在 DNS 中查找邮件服务器(应该具有 PTR 记录和 A 记录)。
一个粗略的修复方法是编辑你的 postfix 配置,这样就不会强制执行此检查。
答案2
该问题可能由多种因素引起,请检查以下内容:
1) 在 Postfix 配置文件中,确保邮件 URL 已正确设置,就像在您的 DNS 文件配置中一样,它应该遵循类似以下内容:mail.yourdomain.com。
2) 启用经过身份验证的用户的开放中继(可以发送/接收的用户应属于特定组),这样,您将能够从任何位置向您的用户或系统上注册的任何用户发送电子邮件。配置开放中继时要小心,因为它可用于发送虚假邮件。
3)确保该 IP 地址没有被 Iptables 阻止。