代码之家  ›  专栏  ›  技术社区  ›  kjubus

带重定向和包含的SPF记录

  •  9
  • kjubus  · 技术社区  · 6 年前

    所以我必须为一个共享域做一个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”
    

    这样行吗?如果没有,那么应该改变什么?

    4 回复  |  直到 6 年前
        1
  •  9
  •   Gavin Jackson newfurniturey    5 年前

    这个 重新使用 是一个 修饰语 而不是 机械装置 ,并且只会在所有其他 机制 已经过测试。不像 包括 ,每年一次 重新使用 已经导航,它将不会返回以评估进一步的术语,尽管为了清晰起见,您的定位不是无效的,但它应该作为记录中的最后一个术语出现,因为只有在所有其他术语都经过测试并通过后,才会对其进行评估。即其在SPF记录中的位置不会影响其处理顺序。

    如果记录中满足任何替代机制条件,则处理将在该条件下停止,并返回评估条件,这包括 全部的 可能存在的机制。因此你不能使用 重新使用 结合 全部的 ,因为 全部的 机制将始终首先得到测试和满足 重新使用 永远不会被处理。当然有 全部的 重定向域的SPF中的机制在到达时仍然适用,这与 -全部 在一个 包括 返回时会忽略这一点 不匹配 包括机制调用。(警告:如果 +全部 在被遍历的 包括 它会回来的 匹配的 ,并触发预先设定的结果,通常包括默认结果 + .)

    值得注意的是,任何重定向域自己的SPF都可能包含进一步的重定向,它们会按预期级联。然而每个 重新使用 计算到 查找计数 限制。

    总之,你会想用。。。

    “v=spf1 mx include:spf.protection.outlook.com redirect:_spf.PROVIDERSERVER.COM”
    
        2
  •  3
  •   Synchro    6 年前

    我不确定,但这里有一个猜测! The docs 说吧 redirect 完全替换当前记录,因此我希望它忽略所有其他子句,但它也会从左到右求值,所以可能会这样做 mx 首先查找-您可以手动进行测试。

    我不知道你为什么要看 重新使用 首先。

    我怀疑你可以通过以下方式实现你的目标:

    "v=spf1 mx include:_spf.PROVIDERSERVER.COM include:spf.protection.outlook.com ~all"
    
        3
  •  2
  •   Community    3 年前

    作为早期答案的补充。

    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”使用涉及局部部件的机制。一
    “包含”指令通常更合适。

    还有一个 redirect 修饰符不能与 all 机制:

    为清晰起见,任何“重定向”修改器都应显示为最后一个
    记录中的术语。如果存在任何“重定向”修饰符,则必须忽略该修饰符
    是记录中任何地方的“全部”机制。

    考虑到所有这些,我建议使用@Synchro提供的语法。虽然这并不违反规则,但将机制与规则结合起来是非常罕见的 重新使用 修饰语。

        4
  •  0
  •   Community    3 年前

    据我所知 https://www.rfc-editor.org/rfc/rfc7208#page-26 )你可以做上一个例子的记录。这个 redirect 如果其他所有操作都失败,则将使用修饰符,这意味着它将是最后一项检查)。

    注意,根据相同的RFC 重新使用 建议将修饰符置于记录末尾,然后 ~all .