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


11

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

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

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

谢谢。


4
由于您具有v6连接性,因此最好为v6兼容的邮件添加反向查找和MX记录。但是,这不是您要的。
sysadmin1138

Answers:


10

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

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


而且,如果您的VPS提供者不想为IPv6设置SPF记录,该怎么办?:(
brodul

2
@brodul您的VPS提供商与您的DNS记录有什么关系?
迈克尔·汉普顿

解决我的SPF记录并不能解决问题-因为我正在将邮件转发到GMail,所以我的转发服务器将永远不会通过SPF检查。
詹姆斯·罗珀

3
Gmail现在还需要反向处理IPv6发送者。拥有有效的反向地址绝对是您的事,而最终取决于服务器/网络提供商。
弗拉基米尔·潘捷列夫

你确定吗?如果我没记错的话,那么gmail现在仅需要有效的SPF记录(并且您必须通过单击“ Not Spam”两次来训练其AI)
奥地利

11

在您的sendmail.mc中添加:

CLIENT_OPTIONS(`Family = inet')dnl

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

感谢您发布此信息,它的确使我步入了正确的轨道。但是,我尝试了此操作,但它仍然对我不起作用。附带说明一下,由于没有IPv6的反向DNS条目,我们遭到了Google邮件服务器的拒绝。这绝对与我们的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

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


非常感谢您的回答!在我无法访问IPv6 PTR的服务器上,它为我完成了窍门,并且sendmail固执地无法将其用于Gmail。
卢森堡

4

在您的sendmail.mc添加中:

CLIENT_OPTIONS(`Family=inet')dnl

然后重建sendmail.cf并重新启动sendmail。在Debian中,您可以通过运行sendmailconfig。在CentOS的你跑/etc/mail/make之后service sendmail restart。其他系统具有执行此操作的其他方法。


0

只是想与我分享(现在是2018年),有效的方法是指定filter-aaaa-on-v4是;在我的本地绑定的named.conf中,按照https://kb.isc.org/docs/aa-00576(我提到的filter-aaaa-on-v6指令除外)不存在。可能命名为--4也可以。这与sendmail并在centos7 [.5.1804]上绑定。

在我尝试了所有其他操作(包括此处的答案)后,gmail吓退了我的邮件,“该邮件不符合IPv6发送准则”,因为,事实上,我的ipv6地址没有反向字符(isp很难)。

其他无效的方法:confBIND_OPTS',按照https://lists.debian.org/debian-user/2004/09/msg01410.html在commit.mc和sendmail.mc中定义(-use_inet6')(aka ResolverOptions)。不知道为什么

更改/etc/gai.conf(根据https://centosfaq.org/centos/etcgaiconf-fails-to-prefer-ipv4-over-ipv6-for-nfs/),大概是因为sendmail使用的是gethostbyname / addr,而不是getaddrinfo,而gai.conf仅影响后者。

哦,我确实有另一个解决方案:从源代码编译sendmail并在该级别禁用v6。不幸的是,似乎没有等效的运行时指令。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.