在过去的一个小时里,我一直在深入研究 SPF、浏览 RFC-4408 和 another tutorial 。
我拥有自己的域,后缀安装在该域后面的服务器上。除了我的普通地址之外,我还希望能够使用我自己的电子邮件地址作为发件人使用 GMail 发送电子邮件。
我确实收到了很多退回垃圾邮件,其中垃圾邮件发送者使用我的电子邮件地址作为“发件人”行 :( 据我了解,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; [email protected]; [email protected]
May 8 15:15:58 h2150855 policyd-spf[6184]: Pass; identity=mailfrom; client-ip=300.300.300.300; helo=mail-lf0-f52.google.com; [email protected]; [email protected]
...并通过第三方服务器发送:
May 8 15:19:17 h2150855 policyd-spf[6554]: None; identity=helo; client-ip=301.300.300.300; helo=theserver.example.com; [email protected]; [email protected]
May 8 15:19:17 h2150855 policyd-spf[6554]: None; identity=mailfrom; client-ip=301.300.300.300; helo=theserver.example.com; [email protected]; [email protected]
我能看到的唯一区别是 postfix SPF 插件将 gmail 邮件明确标记为
Pass
,而另一个标记为 None
。我现在认为添加 SPF 并没有真正对我的邮件设置做任何事情,我正在考虑再次删除它。
最佳答案
它推荐 ~all
而不是 -all
的原因是它与 DMARC 交互的方式;建议使用 -all
早于 DMARC 的存在。如果您单独使用 SPF,-all
确实是一个有效(且正确)的设置,但 -all
通常会破坏 DMARC,因为不会评估其规则。如果您设置 ~all
默认 SPF 操作,它将决定权交给 DMARC 层,此时您可以说“我们认为 SPF 软故障是硬故障”,然后继续获得 DMARC 的其他好处。
因此,简而言之,如果您使用的是 DMARC,那么 ~all
并非毫无意义。 ( ?all
是 总是 毫无意义!)
关于email - 将 SPF 记录与最终的 ~all 规则一起有什么意义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37100363/