450 4.7.1 客户端主机被拒绝:找不到您的主机名

src*_*091 7 domain-name-system email smtp postfix

我有一个 Postfix/Dovecot 电子邮件服务器,它无法将电子邮件发送到某些地址。这是一个例子:

<xxxxx@board.com.ua>: host mail.da.net.ua[91.213.154.4] said: 450
4.7.1 Client host rejected: cannot find your hostname, [128.199.39.109] 
(in reply to RCPT TO command)
Run Code Online (Sandbox Code Playgroud)

这是我的 etc/postfix/main.cf 的相关(我想)摘录:

smtpd_recipient_restrictions = reject_unknown_recipient_domain, 
    reject_unauth_pipelining, permit_mynetworks, 
    permit_sasl_authenticated, reject_unauth_destination
Run Code Online (Sandbox Code Playgroud)

这是我的 IP 的 dig 输出:

$ dig -x 128.199.39.109

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> -x 128.199.39.109
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61194
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;109.39.199.128.in-addr.arpa.   IN  PTR

;; AUTHORITY SECTION:
39.199.128.in-addr.arpa. 1799   IN  SOA ns1.digitalocean.com. hostmaster.39.199.128.in-addr.arpa. 1419274767 10800 3600 604800 1800

;; Query time: 127 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Tue Dec 23 19:08:05 2014
;; MSG SIZE  rcvd: 112
Run Code Online (Sandbox Code Playgroud)

对于我的域名:

$ dig MX btcontract.com +short @ns1.digitalocean.com
50 mail.btcontract.com.
Run Code Online (Sandbox Code Playgroud)

这种奇怪行为的原因是什么,我该如何解决?

Wes*_*ley 9

您需要一个解析128.199.39.109为发送服务器主机名的PTR 记录。可能还想查看您的域的 SPF 记录。

  • 你在平局上很快。:) 尝试设置您的 SPF 记录并将测试电子邮件发送到 mailtest@unlocktheinbox.com 这是一个很好的 [工具](https://www.unlocktheinbox.com/resources/emailauthentication/) 用于诊断问题。 (4认同)