如何停止 Sendmail 从 IPv6 而不是 IPv4 发送邮件

tfe*_*tfe 11 sendmail

今天我注意到 Gmail 将从我的服务器收到的所有邮件发送到垃圾邮件文件夹。我检查了邮件标题,发现以下内容:

Authentication-Results: mx.google.com;
       spf=neutral (google.com: 2001:4ba0:cafe:........ is neither permitted nor denied by best guess record for domain of root@myserver.com) smtp.mail=root@myserver.com
Run Code Online (Sandbox Code Playgroud)

因此,看起来 Sendmail 是从 IPv4 的 IP6 地址发送邮件,并且没有 IPv6 的 SPF 和 PTR 记录。如何强制 Sendmail 从 IPv4 发送邮件?

谢谢。

小智 12

在您的 sendmail.mc 添加:

CLIENT_OPTIONS(`Family=inet')dnl

然后重建sendmail.cf 并重新启动sendmail。在 Debian 中,您可以通过运行 >sendmailconfig 来完成此操作。在 CentOS 中,您运行 /etc/mail/make,然后重新启动服务 sendmail。其他 > 系统有其他方法可以做到这一点。

感谢您发布此信息,这绝对让我走上了正确的轨道。但是,我尝试了这个,但它仍然不适合我。附带说明一下,我们收到了来自 Google 邮件服务器的拒绝,因为我们没有 IPv6 的反向 DNS 条目。这肯定与我们的 VPS 的配置有关,而不是我们的 DNS 配置,因为数字反向 DNS 条目必须属于拥有 IP 地址块的人,这就是我的 VPS。

无论如何,据我所知,没有办法专门关闭使用 IPv6 作为客户端的 sendmail。我遇到的稍微棘手的解决方案是指定 IPv6 选项以使用 IPv4 地址的 IPv6 兼容性格式。

例如,如果您的 IPv4 地址是 1.2.3.4,请指定:

CLIENT_OPTIONS(`Family=inet6,Addr=::ffff:1.2.3.4')dnl

对我来说很有魅力,据我所知,这在任何地方都没有记录。


Mic*_*ton 10

不要禁用 IPv6。它不再是可选的,如果没有它,您将无法与某些人交流。

相反,请修复您的 SPF 记录,以便它传递源自您的 IPv6 地址的邮件。

  • Gmail 现在还需要对 IPv6 发件人进行反向工作。拥有一个有效的反向地址*绝对*不在您的手中,取决于您的服务器/网络提供商。 (4认同)
  • @brodul 您的 VPS 提供商与您的 DNS 记录有什么关系? (2认同)