sendmail 无法投递到 gmail - 不符合有关 PTR 记录的 IPv6 发送指南

mer*_*lin 36 ipv6 sendmail gmail

我无法从 ubuntu 14.04 上的全新 sendmail 安装向 google 发送邮件。DNS 记录似乎对 IP 没问题。一定是别的什么地方出了问题。

从命令行发送邮件:

sudo sendmail -v -Am -i myname@gmail.com;
Run Code Online (Sandbox Code Playgroud)

详细输出:

myname@fx1:/etc/mail$ sudo sendmail -v -Am -i myname@gmail.com;
myname@gmail.com... Connecting to aspmx.l.google.com. via esmtp...
220 mx.google.com ESMTP v1si55415385wja.21 - gsmtp
>>> EHLO staging.mydomain.com
250-mx.google.com at your service, [2a01:4f8:212:27c8::2]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
>>> STARTTLS
220 2.0.0 Ready to start TLS
>>> EHLO staging.mydomain.com
250-mx.google.com at your service, [2a01:4f8:212:27c8::2]
250-SIZE 35882577
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
>>> MAIL From:<myname@staging.mydomain.com>
250 2.1.0 OK v1si55415385wja.21 - gsmtp
>>> RCPT To:<myname@gmail.com>
>>> DATA
250 2.1.5 OK v1si55415385wja.21 - gsmtp
354  Go ahead v1si55415385wja.21 - gsmtp
>>> .
550-5.7.1 [2a01:4f8:212:27c8::2] Our system has detected that this message does
550-5.7.1 not meet IPv6 sending guidelines regarding PTR records and
550-5.7.1 authentication. Please review
550-5.7.1  https://support.google.com/mail/?p=ipv6_authentication_error for more
550 5.7.1 information. v1si55415385wja.21 - gsmtp
myname... Connecting to local...
myname... Sent
Run Code Online (Sandbox Code Playgroud)

任何帮助都非常感谢。先感谢您。

End*_*der 37

  1. 检查当前协议:

    postconf inet_protocols

    net_protocols = 全部

  2. 如果返回,请编辑 cf 文件 all

    grep 'inet_protocols' /etc/postfix/main.cf

    inet_protocols = ipv4

  3. 重新开始

    service postfix restart

  4. 再检查一下

    postconf inet_protocols

    inet_protocols = ipv4

  • 恕我直言,这是一个比公认的解决方案更容易的解决方案。如果您没有迫切需要使用 IPv6,这可能是一个快速解决方案。 (5认同)

Cra*_*son 18

从谷歌的角度来看,他们正试图验证IP地址连接到他们的身份,所以他们会尝试来查找PTR备案2a01:4f8:212:27c8::2

当他们staging.findix.com将其解析为 时,他们将尝试检查此解析是否返回到2a01:4f8:212:27c8::2- 事实并非如此 - 请参阅此查找结果

反向(PTR 记录)查找

cwatson@thor:~$ nslookup 31.220.4.52
Server:     127.0.0.1
Address:    127.0.0.1#53

Non-authoritative answer:
52.4.220.31.in-addr.arpa    name = tyr.vikingserv.net.
Run Code Online (Sandbox Code Playgroud)

正向(A 记录)查找

cwatson@thor:~$ nslookup tyr.vikingserv.net
Server:     127.0.0.1
Address:    127.0.0.1#53

Non-authoritative answer:
Name:   tyr.vikingserv.net
Address: 31.220.4.52
Run Code Online (Sandbox Code Playgroud)

  • 第一段不太正确;因为多个 A/AAAA 记录可以指向同一个 IP 地址,所以这是不可能的。需要的是,无论您的 PTR 记录指向哪个主机名,当您查找该主机名时,您都应该返回原始地址。即地址-&gt;主机名-&gt;地址循环必须完成;主机名-&gt;地址-&gt;主机名循环无法保证,没有人应该关心它。 (3认同)
  • 在我看来,您回答的是“为什么”,而不是“如何解决”。我个人对这个答案没有足够的 DNS 知识来帮助我。 (3认同)
  • 我必须将 google 错误消息中的 IPv6 地址的 AAAA 记录(在您的情况下为 2a01:4f8:212:27c8::2)添加到 `hostname` 命令返回的域名的 DNS 服务器中。一段时间后(TTL 到期,即第二天),我可以使用以下命令向我的 gmal 帐户发送电子邮件:“sendmail -v -Am -i &lt;my_gmal_account&gt;@gmail.com;”(并按 Ctrl +D)。 (2认同)