什么是SPF记录与最终的所有规则有什么关系?

时间:2016-05-08 13:28:28

标签: email postfix-mta spf

在过去一小时内,我一直在深入研究SPF,浏览RFC-4408,然后过another tutorial

我拥有自己的域名,并在该域名后面的服务器上安装了postfix。除了我的正常地址,我还希望能够使用我自己的电子邮件地址作为发件人使用GMail发送电子邮件。

我确实收到了很多反弹垃圾邮件,垃圾邮件发送者使用我的电子邮件地址作为"来自" line :(根据我的理解,SPF用于检查是否允许给定的SMTP服务器发送带有某些发件人域名的邮件。这有助于所说的反弹。

很明显,如果我希望能够通过Gmail发送邮件,我必须允许gmail通过SPF记录发送我的名字。

their help之后,我添加了以下TXT记录:

v=spf1 include:_spf.google.com ~all

他们具体建议不要使用-all作为后果规则。

鉴于~all是"软故障"仍然接受所有消息,启用SPF的重点是什么?

我尝试从外部主机发送一些邮件并且它们被接受,唯一的区别是我的邮件服务器假定没有SPF记录。

通过GMail发送时从日志中摘录:

May  8 15:15:58 h2150855 policyd-spf[6184]: None; identity=helo; client-ip=300.300.300.300; helo=mail-lf0-f52.google.com; envelope-from=mygmailaddress@gmail.com; receiver=mypersonaladdress@example.com
May  8 15:15:58 h2150855 policyd-spf[6184]: Pass; identity=mailfrom; client-ip=300.300.300.300; helo=mail-lf0-f52.google.com; envelope-from=mygmailaddress@gmail.com; receiver=mypersonaladdress@example.com

...并通过第三方服务器发送:

May  8 15:19:17 h2150855 policyd-spf[6554]: None; identity=helo; client-ip=301.300.300.300; helo=theserver.example.com; envelope-from=exhuma@theserver.example.com; receiver=mypersonaladdress@example.com
May  8 15:19:17 h2150855 policyd-spf[6554]: None; identity=mailfrom; client-ip=301.300.300.300; helo=theserver.example.com; envelope-from=exhuma@theserver.example.com; receiver=mypersonaladdress@example.com

我能看到的唯一区别是后缀SPF插件将gmail消息明确标记为Pass,而另一个标记为None

我现在认为添加SPF并没有真正对我的邮件设置做任何事情,我正在考虑再次删除它。

3 个答案:

答案 0 :(得分:1)

它推荐~all超过-all的原因是因为它与DMARC的互动方式;使用-all的建议早于DMARC的存在。 -all确实是一个有效(且正确)的设置如果你单独使用SPF ,但-all通常会破坏DMARC,因为它的规则不会被评估。如果您设置~all默认SPF操作,它会将决定权移交给DMARC层,此时您可以说“我们认为SPF软件故障是一种困难”,并继续获得其他好处DMARC。

因此,如果您使用DMARC ,简而言之~all并非毫无意义。 (?all 总是毫无意义!)

答案 1 :(得分:0)

您最好的选择是〜所有仅用于测试和使用-all进行生产。甚至RFC也建议:

  

如果域所有者选择发布SPF记录,则推荐使用   它们以" -all"结尾,或重定向到其他记录,所以   可以做出明确的授权决定。

当遇到软故障时,某些网站实际上会拒绝该电子邮件或将其指向垃圾邮件文件夹,但只是强制执行硬故障会改善拒绝邮件的网站更改,这些邮件会尝试伪造您的域名作为发件人

答案 2 :(得分:0)

在某些DMARC软件包(如OpenDMARC)中,

~all在默认情况下会被解释为失败,尽管您可以更改标志以将其解释为通过。

类似地,?all在OpenDMARC中默认解释为失败。

相反,无论部署了DMARC软件包如何,-all始终被解释为失败。

我写了一篇有关该主题的文章:Why SPF Authentication Fails

它还涵盖了其他相关概念,包括无,中立,临时错误,永久错误等。