技术解析 · 附来源的解答
DNS TXT 记录:定义与邮件用途
DNS TXT 记录是一种域名系统资源记录,允许域名管理员在 DNS 中写入任意文本。在邮件场景中,TXT 记录主要用于存储 SPF、DKIM 和 DMARC 的身份验证数据,以验证发件人身份。
工作机制
TXT 记录以键值对的形式存储在 DNS 服务器上。收件邮件服务器收到邮件后,会向发信域名的 DNS 查询特定的 TXT 记录,取回与该记录关联的文本字符串,并按照所检查的协议进行解析,例如查找 v=spf1 前缀来识别 SPF 规则。
对发件人的重要性
TXT 记录对邮件送达率至关重要,因为它们为域名所有者提供了一种机制,用于证明域名归属,并授权特定的 IP 地址或服务代表其发送邮件。没有这些记录,收件服务器就无法验证发件人的真实性,这往往会导致邮件被标记为垃圾邮件或被直接拒收。
常见运维错误
常见错误包括单个字符串超过 255 个字符的上限,这时需要把记录拆分为多个字符串。其他常见错误还有:在同一个域名上配置多条 SPF 记录(这违反了标准,会导致身份验证失败),或存在缺少引号、前缀错误等语法错误。
具体示例
SPF 记录是一条类似 v=spf1 ip4:1.2.3.4 include:_spf.google.com ~all 的 TXT 记录。DMARC 记录是位于 _dmarc 子域名下的 TXT 记录,例如 v=DMARC1; p=quarantine; rua=mailto:admin@example.com。您可以使用 https://sendhq.cc/tools 上的免费工具检查当前的记录。
域名验证
除了邮件身份验证之外,TXT 记录还被广泛用于验证域名所有权。Google Search Console 或 Microsoft 365 等服务会要求用户添加一个随机生成的唯一字符串作为 TXT 记录,以证明其控制着该域名的 DNS 设置,然后才授予管理服务的访问权限。
团队常问的问题
一个域名可以有多条 TXT 记录吗?
可以,一个域名可以有多条 TXT 记录。但对于 SPF 等特定协议,您必须把所有获授权的发件方合并到同一条 TXT 记录中。
TXT 记录的字符上限是多少?
TXT 记录中的单个字符串上限为 255 个字符,但可以将多个字符串拼接起来,总长度上限为 2048 个字符。
TXT 记录更新需要多长时间?
更新时间取决于记录的 TTL(生存时间)设置,在全球 DNS 系统中通常需要几分钟到 48 小时不等。
一手资料
- RFC 7208:发件人策略框架(SPF) — RFC Editor
- RFC 7489:基于域的消息认证、报告与一致性(DMARC) — RFC Editor
- Cloudflare DNS 文档 — Cloudflare