如何在 Route 53 中配置超过 255 个字符的 SPF 或 TXT 记录?
上次更新时间:2022 年 8 月 5 日
如何在 Amazon Route 53 中配置长度超过 255 个字符的发件人策略框架 (SPF) 或文本 (TXT) 记录?
简短描述
SPF 是一种基于 DNS 的开放式电子邮件身份验证系统,可让域所有者控制哪些 IP 地址可以代表他们发送电子邮件。接收电子邮件服务器将检查 SPF 记录中的传入邮件,并确定源服务器 IP 地址是否列在 SPF 规则集中。
一些电子邮件收件人严格要求使用 SPF。如果您尚未发布针对域的 SPF 记录,则电子邮件可能会被标记为垃圾邮件或被退回。如果电子邮件是通过未经授权的邮件服务器发送的,则该电子邮件可能被标记为垃圾邮件。正确配置 SPF 记录可提高电子邮件的可投递性,并保护您的域免受以其名义发送恶意电子邮件的侵害。
注意:在 SPF 记录评估期间,最多允许 10 个 DNS 查询。如果超出该限制,您将收到一条错误消息。
解决方法
重要提示:Route 53 和大多数邮件提供商不再提倡使用 SPF 记录类型。最佳实践是创建一条包含相关值的 TXT 记录。有关更多信息,请参阅 RFC 7208。
创建 SPF 记录
- 收集您用来发送电子邮件的所有 IP 地址。请记得包括所有发送组织,例如您的电子邮件服务提供商、Microsoft Office 邮件服务器以及代表您发送电子邮件的任何第三方邮件服务器。
- 为步骤 1 中确定的每个域创建 SPF 记录,即使该域没有主动发送电子邮件。请务必:
- 添加 v=spf1 (version 1) 标签将记录定义为 SPF。然后,包括有权代表您发送电子邮件的所有 IP 地址和子网。例如:v=spf1 ip4:34.243.61.237 ip6:2a05:d018:e3:8c00:bb71:dea8:8b83:851e & ip4:192.168.1.0/24。
- 为用于代表您发送电子邮件的每个第三方组织添加一个 include 标签。例如:include:thirdpartydomain.com。请咨询您的第三方提供商,以确定要将哪个域用作 include 语句的值。
- 用 all 标签来结束您的记录。all 标签指示当收件人检测到未在 SPF 记录中列出的服务器时将应用哪个策略。如果您使用 -all 标签,则 SPF 记录中未列出的任何服务器都无权发送电子邮件(不合规电子邮件将被拒绝)。如果您使用 ~all 标签,则从未列出的服务器收到的电子邮件将标记为软失败(电子邮件被接受但会加标记)。使用 +all 标签不是最佳做法,因为此标签允许任何服务器从您的域发送电子邮件。
- 对于不发送电子邮件的域,最佳做法是发布以下记录:v=spf1 -all。
定义 SPF 记录属性后,记录格式类似于:v=spf1 ip4:54.66.167.159 ip6:2406:da1c:1c7:a301:c560:240:cb38:2937 ip4:192.168.1.0/24 include:thirdpartydomain.com -all。
创建 TXT 记录
需要记住的要点:
- TXT 记录包含一个或多个用双引号 (") 括起来的字符串。
- 您可以在 TXT 记录的一个字符串中输入长度最大为 255 个字符的值。
- 您可以在一条 TXT 记录中添加多个包含 255 个字符的字符串。
- TXT 记录中值的最大长度为 4000 个字符。
- TXT 记录值区分大小写。
对于超过 255 个字符的值,请将值拆分为长度不超过 255 个字符的字符串。使用以下语法将每个字符串用双引号 (") 括起来:Domain name TXT "String 1" "String 2" "String 3"….."String N"。
有关在 TXT 记录中指定哪些值的信息,请参阅输入 TXT 记录值。
创建 TXT 记录来替换 SPF 记录:
- 打开 Route 53 控制台。
- 选择托管区域。
- 选择该 SPF 记录的域
- 复制该 SPF 记录的值,然后选择 Create record(创建记录)。
- 对于 Routing policy(路由策略),选择 Simple routing(简单路由)。
- 选择 Next(下一步)。
- 选择 Define simple record(定义简单记录)。
- 对于 Record name(记录名称),指定一个名称。
- 对于 Value/Route traffic to(值/流量路由至),选择 IP address or another value depending on the record type(IP 地址或其他值,具体取决于记录类型)。然后,粘贴您在第 4 步中复制的 SPF 记录值。
- 对于 Record type(记录类型),选择 TXT。
- 对于 TTL (seconds)(TTL (秒)),指定一个生存时间值。
- 选择 Define simple record(定义简单记录)。
以下示例显示了一条 TXT 记录,该记录配置了域验证、SPF 记录和 DKIM 签名的值:
txt1.geeksbox.club. TXT 3600 "google-site-verification=rXOxyZounnZasA8Z7oaD3c14JdjS9aKSWvsR1EbUSIQ"
"v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"
"spf2.0/pra include:spf1.amazon.com include:spf2.amazon.com include:amazonses.com -all"
"v=DKIM1;k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDeIhtCv3vUinyhKiKtZ8efjHGGo8gE1T+o7gLrvo6yRtdz9ICe6Fz5sgz0WYFW5nCV4DmaTcS25TfgWKsLgg"