SPFredirect到子域名TXT不适用于Google?

有趣的情况,我不知道这是我的错还是Google的。

我有一个域example.com ,它有两个子域: main.example.comspf.example.com 。 对于main.example.com域,我的TXTlogging过去被定义为: v = spf1 redirect = example.com,并为相关的example.com定义了TXT。

出于各种原因,我决定为spf.example.com创build“主”TXT SPF,并在那里redirect。 请注意,SOA和NS仅适用于example.com 。 我改变了main.example.com TXT阅读v = spf1 redirect = spf.example.com和谷歌(根据DMARC报告)没有看到SPFlogging了。 雅虎和微软呢。

因此,我运行了第二个testing:创build了backup.example.com ,发送了一些没有定义TXT SPF的电子邮件,来自所有雅虎,MS和Google的DMARC报告反映出没有TXT SPF。 定义TXT为v = spf1 redirect = spf.example.com和bam,MS和Yahoo注意到,虽然Google仍然没有。

任何解释,除了“谷歌邮件软件糟糕”?

据我了解,redirectlogging中的值如下所示:

v=spf1 redirect=spf.example.com - 

有两个问题我立即注意到:

  • 有一个限定符( - )没有任何机制,即logging似乎在语法上是不正确的。
  • redirect ,但它不是logging中的最后一个条目。

这两个都是有问题的,因为规范试图确保logging在实际应用之前应该被理解:

从SPF规格的logging评估部分 (强调增加):

check_host()函数parsing并解释SPFlogging以查找当前testing的结果。 logging的语法首先被validation,如果logging中任何地方有任何语法错误,check_host()立即返回结果“permerror”,而没有进一步的解释或评估。

从SPF规范的redirect部分 (强调添加):

为了清楚起见, 任何“redirect”修饰符应该出现在logging中的最后一个术语 。 如果logging中的任何位置有“全部”机制,则必须忽略任何“redirect”修改器。