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

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

我在从 ubuntu 14.04 上新安装的 sendmail 向 google 发送邮件时遇到了问题。DNS 记录似乎对 ip 没有问题。一定是其他问题。

从命令行发送邮件:

sudo sendmail -v -Am -i [email protected];

详细输出:

myname@fx1:/etc/mail$ sudo sendmail -v -Am -i [email protected];
[email protected]... 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:<[email protected]>
250 2.1.0 OK v1si55415385wja.21 - gsmtp
>>> RCPT To:<[email protected]>
>>> 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

非常感谢您的帮助。提前谢谢您。

答案1

从 Google 的角度来看,他们正在尝试验证连接到他们的 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.

正向(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

答案2

  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

答案3

您的 smtp 服务器主机名可能有问题。对我来说似乎就是这种情况。POstfix 不知何故向 smtp.gmail.com 发送了一个与我的 smtp 域名不相关的主机名。

答案4

我认为 Google 的回应有点不诚实。尽管他们的“错误消息”提到了 PTR,但 550 5.7.1 是关于中继的。我在安装 Postfix / Dovecot 时也遇到了这个错误,但我通过几个步骤修复了它:

  1. 将 IPv6 IP 信息添加到邮件服务器上的 ifcfg-eth0 配置中
  2. 在您的 DNS 上添加 AAAA MX 记录
  3. 在您的邮件服务器上的 postfix/main.cf 中添加所有“授权发件人”的 IPv6 范围。

我有 AT&T Business UVerse,他们不支持 PTR 的静态 IPv6,但执行上述步骤后,Google 不再出错。我使用了https://www.ultratools.com/ipv6Tools从 IPv4 转换为 IPv6。最后,我在我的网站上将所有内容整合成一份操作指南,网址为在 CentOS 上启用 IPV6(用于发送和接收邮件)

相关内容