我试图find为什么postfix从mail.log拒绝接收邮件的行是:
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 vs xxx.xxx.xxx.2)?
非常感谢
我认为来自未知的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在这一点上将执行一个DNS查找mailserver.senderdomain.com,如果查找匹配所连接的服务器的IP它将继续,否则,在您进入RCPT后…..你会得到:
Out: 450 Client host rejected: cannot find your hostname, [xxxx]
解决这个问题的真正方法是确保您可以查找DNS中的邮件服务器(应该有PTRlogging以及Alogging)。
一个粗略的解决办法是编辑你的postfixconfiguration,所以这个检查不强制执行。
这个问题可能是由几个因素造成的,请检查以下几点:
1)在Postfixconfiguration文件中,确保邮件url正确设置,因为它在你的DNS文件configuration上,它应该像下面这样:mail.yourdomain.com。
2)使用通过身份validation的用户启用开放中继(可以发送/接收的用户应该在特定的组上),这样,您将能够从您的用户或系统上注册的任何用户的任何位置发送电子邮件。 configuration开放中继时要小心,因为它可以用来发送假邮件。
3)确保IP地址在Iptables中没有被阻塞。