Postfix 似乎一直在拒绝来自少数服务器的邮件,尽管这些域的 PTR 查找成功。请参阅下面的日志。我不知道该怎么做才能解决这个问题。我确信问题不在于发送服务器,因为它们在发送到其他域时没有错误。
Oct 26 09:08:32 mail postfix/smtpd[16158]: NOQUEUE: reject: RCPT from
unknown[XX.XX.XX.XX]: 450 4.7.1 Client host rejected: cannot find your hostname,
[XX.XX.XX.XX]; from=<[email protected]> to=<[email protected]> proto=ESMTP
helo=<somedomain.com>
[root@mail log]# dig -x XX.XX.XX.XX
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> -x XX.XX.XX.XX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26837
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 6
;; QUESTION SECTION:
;XX.XX.XX.XX.in-addr.arpa. IN PTR
;; ANSWER SECTION:
XX.XX.XX.XX.in-addr.arpa. 7813 IN PTR somedomain.com.
;; Query time: 417 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Oct 26 09:24:25 2014
;; MSG SIZE rcvd: 66
答案1
由于您对数据进行了匿名化,因此无法 100% 回答,但 Postfix 正在寻找要匹配的 PTR 和 A 记录,以及邮件服务器声称的主机名,从您混淆的日志消息中的 HELO 命令来看,该主机名似乎是“somedomain.com”。
这些由以下人员控制:
reject_unknown_sender_domain
reject_unknown_client_hostname
reject_invalid_helo_hostname
Postfix 配置参数http://www.postfix.org/postconf.5.html
答案2
我知道这是一个老话题,但我想在答案中添加一些更多的内容。
事实上,发件人的域名存在问题。正如 @milli 指出的那样,PTR 和 A 记录应该匹配 - 但事实并非如此。
如果 postfix 配置了 rejection_unknown_sender_domain,postfix 将执行以下检查...
1)从 DNS 检索 PTR 记录 - 如果没有 PTR 记录,则拒绝该电子邮件
2)从 PTR 中的域的 DNS 中检索 A 记录 - 如果 A 记录中的 IP 与连接的 MX 的 IP 不匹配,则拒绝该电子邮件。
例如,MX 从 IP 74.125.195.27 连接
$ host 74.125.195.27
27.195.125.74.in-addr.arpa domain name pointer wj-in-f27.1e100.net.
$ dig a wj-in-f27.1e100.net. +short
216.239.32.27
66.102.12.27
74.125.195.27
在这种情况下,PTR 记录中来自域的 A 记录包含与所连接主机相同的 IP 地址。此电子邮件不会被拒绝。
不过,大多数情况下的“问题”如下:
$ host 216.117.130.109
109.130.117.216.in-addr.arpa domain name pointer jalequity.com.
$ dig a jalequity.com. +short
104.239.175.211
PTR 记录中域的 A 记录与所连接主机的 A 记录不匹配 - 此电子邮件将被拒绝,并显示“客户端主机被拒绝:找不到您的主机名”
导致这种情况的最常见错误是将实际域名(本例中为“jalequity.com”)放在 PTR 记录中,而不是子域名。要解决此问题,发件人应将其 PTR 记录修改为 mail.jalequity.com 之类的内容,然后为 mail.jalequity.com 添加一条 A 记录,IP 地址为 216.117.130.109。从该服务器发送的任何其他电子邮件都将被接受。
最好的解决方法是让发送者更正他们的 DNS 记录。
另一种解决方法是将后缀限制从“reject_unknown_sender_domain”放宽为“reject_unknown_reverse_client_hostname”。但此操作会产生一些后果 - 主要是大多数垃圾邮件发送者都有 PTR 记录(它只是与 A 记录不匹配),因此放宽后缀限制将确保您不会错过重要的电子邮件,但它也将确保您的垃圾邮件过滤器持续工作!