所以我必须为共享域制作一个SPF记录--2个邮件系统,一个是Office 365.通常它看起来像这样:
“v=spf1 mx include:MAIL_SERVER include:spf.protection.outlook.com ~all”
如果事先已经这样配置,那就非常直接了:
“v=spf1 mx include:MAIL_SERVER ~all"
但我有不同的情况,就像这样:
“v=spf1 mx redirect:_spf.PROVIDERSERVER.COM"
我不确定,我可以这样做:
“v=spf1 mx redirect:_spf.PROVIDERSERVER.COM include:spf.protection.outlook.com ~all”
它会像这样工作吗?如果没有,那么应该改变什么?
答案 0 :(得分:5)
重定向是修饰符而不是机制,只会在所有其他机制之后考虑已经过测试。与包含不同,一旦导航重定向,它就不会返回评估更多字词,虽然为了清晰起见您的定位无效,但它应显示为记录中的最后一个术语,因为只有在测试并传递所有其他术语后才会对其进行评估。即它在SPF记录中的位置不会决定其处理顺序。
如果记录中满足任何替代机制术语,则处理将在该术语停止并返回评估条件,这包括可能存在的任何全部机制。因此,您无法将重定向与所有结合使用,因为所有机制将始终首先进行测试和满足,并且重定向< / strong>永远不会被处理。当然,重定向域SPF中的任何所有机制仍然适用,如果包含中的 -all 不同将 not-matched 返回到include机制调用将被忽略。 (警告:如果在遍历的包含中遇到 + all ,它将返回匹配的,并触发其中包含的任何结果,通常是默认 + 。)
值得注意的是,任何重定向域的自己的SPF可能包含更多重定向,并且它们会按预期级联。但是,每次重定向都会计入查找次数限制。
总而言之,您可能希望使用类似......
的内容
“v=spf1 mx include:spf.protection.outlook.com redirect:_spf.PROVIDERSERVER.COM”
答案 1 :(得分:1)
我不确定这一点,但这里有一个猜测! The docs说redirect
完全取代当前记录,所以我希望它忽略所有其他条款 - 但它也会从左到右进行评估,所以也许会进行mx
查找首先 - 你可以手动测试。
我不确定你为什么要首先看redirect
。
我怀疑你可以实现你的目标:
"v=spf1 mx include:_spf.PROVIDERSERVER.COM include:spf.protection.outlook.com ~all"
答案 2 :(得分:1)
据我所知(/了解https://tools.ietf.org/html/rfc7208#page-26),你可以从最后一个例子中做出记录。如果其他所有内容都失败,将使用redirect
修饰符,这意味着它将是最后检查的内容。)
请注意,根据同一RFC,redirect
修饰符建议位于记录末尾,~all
之前。
答案 3 :(得分:0)
为先前的答案提供附加内容。
在RFC, section 6.1 on the redirect modifier中显示为:
此功能仅供希望申请的组织使用 同一记录到多个域。例如:
la.example.com. TXT "v=spf1 redirect=_spf.example.com" ny.example.com. TXT "v=spf1 redirect=_spf.example.com" sf.example.com. TXT "v=spf1 redirect=_spf.example.com" _spf.example.com. TXT "v=spf1 mx:example.com -all"
在此示例中,来自三个域中任何一个的邮件都由 相同的记录。这可能是管理上的优势。
注意:通常,域“ A”不能可靠地使用重定向到 不在同一管理控制下的另一个域“ B”。自
保持不变,不能保证记录在 域“ B”将正确用于域“ A”中的邮箱,
尤其是如果域“ B”使用涉及本地部分的机制。安
通常,“ include”指令会更合适。
而且,redirect
修饰符不得与all
机制结合使用:
为清楚起见,任何“重定向”修饰符都应显示为最后一个
记录中的字词。如果存在任何“重定向”修饰符,则必须忽略
是记录中任何位置的“全部”机制。
考虑到所有这些,我建议使用@Synchro提供的语法。尽管不违反规则,但是将机制与redirect
修饰符组合在一起是非常不寻常的。