然而,尽管多次阅读解释,我还不太了解如何正确配置它.
假设我的服务器位于a.x.com,主机是www.x.com和b.x.com以及c.x.com等.
我也有a.co.uk b.net c.info等,每个都有各种各样的子域名,都在x.com上托管
对于所有这些域和子域,我想允许从a.x.com发送邮件
我还希望他们都允许从Gmail发送所有这些域的邮件.
如何使用SPF进行设置?
我可以为x.com(或a.x.com)设置一个SPF记录,然后为其他所有内容设置一个简单的包含/指向x.com记录的记录,还是需要以不同的方式完成?
任何人都可以为上面的例子提供一些SPF记录吗?
注意:我的问题的第二部分已经回答(使用“v = spf1 include:x.com -all”来包含/指向x.com的记录),但是在x.com上设置的内容的关键部分仍未得到答复…
解决方法
>在x.com域的zonefile中:
_policy1 IN TXT "v=spf1 a:a.x.com -all" _policy2 IN TXT "v=spf1 include:_spf.google.com a:a.x.com -all"
_spf.google.com是包含Gmail SPF记录的记录.不确定是否记录在案.从理论上讲,你应该包括:gmail.com,但这是一个重定向到_spf.google.com,并且至少有一个广泛使用的qmail的SPF补丁没有正确地遵循它(在2008年8月修复但可能仍然部署.当然,这两个策略是示例 – 在调试时具有多个具有不同严格级别的策略非常有用,因为您只需要更改目标域中的短名称而不是容易出错的copypasting.
>在其他域的区域文件中:
@ IN TXT "v=spf1 redirect=_policy1.x.com"
要么
@ IN TXT "v=spf1 redirect=_policy2.x.com"
我正在使用重定向,而不是包含,以使SPF检查完全替换当前评估的记录与我重定向到的记录. include不会这样做 – 例如,在include的末尾-all不会导致评估停止(包括是一个很大的用词不当.)当你想要从另一个域“别名”SPF记录时,你应该避免使用include,因为它非常脆弱 – 如果你不小心忘记了尾随 – 所有你可能会使你在该领域的整个SPF无效.
编辑:请注意,如果您想允许Gmail的服务器作为发件人,您需要保持警惕. Gmail chaptcha已被破解,这意味着可以自动化帐户注册,这意味着Gmail可以(间接)用作开放中继(我的公司讨论论坛每周都会收到数十个spambot注册请求,全部使用gmail.com电子邮件地址 – 这些地址是实时的,我允许一些人进行检查.)此外,如果您熟悉域中电子邮件地址的uwsername部分,那么拥有Gmail帐户的任何人都可以绕过SPF检查.