我现在已经搜索了几个小时,但是有多个消息来源说了不同的话。

https://support.wordfly.com/hc/en-us/articles/204767474-How-do-we-在我们的DNS中发布DKIM和SPF-状态
我不应该使用引号,而https://stackoverflow.com/a/9784925/1293725读取的引号应包含在这些TXT记录中。 br />
这些只是来源的一些示例,但是还有更多。

这些记录是否应包括引号?

评论

这实际上取决于您的系统/设置。例如。我假设使用wordfly,您是以网络形式输入值。在形式中使用引号确实会使事情搞砸。因此,该过程很可能会假定您使用引号,并使用DNS中的引号输入值。

@closetnoc是正确的。是否使用引号可能与您用来输入引号的网站/工具有更多关系。

谢谢,我先尝试使用引号,然后再看系统是否抛出错误。我发现它令人困惑,因为来源表明TXT记录中的空格使每个单词都被视为一个单独的字符串,而且我无法弄清楚这是否是SPF和DKIM的预期行为。但我知道现在应该将其视为一个字符串。

我有了引号,将DNS移至新的提供程序(Azure DNS),并且SPF停止工作。删除引号,然后一切再次正常。因此,这取决于提供者。确保您验证记录。您要为其创建SPF记录的实体通常具有工具/按钮来执行此操作。

#1 楼

在(原始)DNS区域文件中,如果TXT记录的值包含空格,则需要将其括在双引号中(对于SPF和DKIM记录通常是这样)。否则,空格是DNS区域文件中的定界符。

RFC 1305定义应如何在区域精细中引用值。关于TXT资源记录:


3.3.14。 TXT RDATA格式

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/                   TXT-DATA                    /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+


其中:

TXT-DATA一个或多个<character-string>


[第20页]


<character-string>以一种或两种方式表示:连续的
字符集,没有内部空间,或以
开头并以“结尾的字符串。在“定界字符串中,除<”字符外,任何
字符都可能出现,必须使用
\(反斜杠)将其引起来。


[第35页]


但是,正如注释中所述,您经常使用其他工具来编辑DNS记录(尽管WHM确实为您提供了此选项,但是您通常不直接编辑DNS区域文件) 。此其他工具可能会处理引号和使记录有效所需的任何其他转义。如果您在使用编辑器/工具提交值时手动将值括在引号中,则这些额外的引号可能会被转义并成为TXT记录值的一部分。您会看到已解析/未加引号的字符串值。

其他参考:https://en.wikipedia.org/wiki/TXT_Recordhttps://tools.ietf.org/html/rfc1464

评论


是的,在阅读评论后,我也在注册服务商的站点上找到了手册,说明记录应输入不带引号的(尽管我之前用引号将它们记录下来,并且在线验证程序将其标记为有效,所以也许这两种方式均适用于我的情况) )。我已切换为注册商的推荐格式。谢谢大家的帮助!

–Neograph734
15年11月23日,0:03

是的,Cloudflare也有关于报价的特别说明support.cloudflare.com/hc/en-us/articles/…

–lkraav
18年7月25日在11:19

在哪里可以找到此规则,“如果TXT值包含空格,则必须用双引号引起来”?这听起来像是个好规则,但是这是谁的规则呢?在RFC 1464或您提到的Wikipedia文章中,我找不到任何有关它的信息。 (RFC 1464提到了转义内部双引号,但这是不同的。)

– Garret Wilson
19-10-23在16:19

嗯,据我所知,这种转义是在RFC 1035的3.3节中为生产定义的,稍后在3.3.14节中它指定TXT记录将作为数据,因此应引用。 (无论是什么,HINFO记录都提到了这一点。)

– Garret Wilson
19年10月23日在16:30

是的,RFC 1305似乎是定义它的地方。如果您在WHM中编辑原始DNS区域,则实际上会提示您“您必须遵循RFC 1035中描述的引用和转义约定”。我会更新我的答案,谢谢。

–怀特先生
19-10-23在16:57