mail.example.com
当域名的邮件从两个位置发送时,如何制作 SPF 记录:
邮件服务器位于公共 IP 地址,
198.51.100.111
又名mail.example.com
。位于公共 IP 地址的网络服务器
203.0.113.222
。
答案1
很简单,只需将两个地址添加到记录中即可:
"v=spf1 +ip4:198.51.100.111 +ip4:203.0.113.222 ~all"
...但事情还远不止于此。
- 您可能没有发送邮件,
mail.example.com
因为信封发件人,但是example.com
,这标志着这项允许两者的政策应该在哪里。 - HELO 主机名也可以而且应该使用 SPF 保护。
- 您应该为每个 A 记录发布一个 SPF 记录。否则您的子域名可能会被用作信封发件人。
这些内容在这个答案。
因此,如果你有,例如,
example.com. IN A 203.0.113.222
www.example.com. IN A 203.0.113.222
mail.example.com. IN A 198.51.100.111
example.com. IN MX mail.example.com.
您的 SPF 记录可能如下所示:
example.com. IN TXT "v=spf1 +ip4:198.51.100.111 +ip4:203.0.113.222 ~all"
www.example.com. IN TXT "v=spf1 +a ~all"
mail.example.com. IN TXT "v=spf1 +a ~all"
虽然该ip4
机制减少了 DNS 查询,但您不需要需要使用它:
example.com. IN TXT "v=spf1 +mx +a ~all"
这里,mx
扩展为ip4:198.51.100.111
&a
为ip4:203.0.113.222
。
你可以将“软失败”替换~all
为-all
“硬失败”。然而,例如,Freddie Leeman 的2023 年终极 SPF / DKIM / DMARC 最佳实践建议使用软失败,理由很充分:
使用
~all
(softfail) 而不是-all
(fail) 是最佳做法,因为后者可能导致接收服务器在 SMTP 传输时阻止消息,而不是评估可能的 DKIM 签名和 DMARC 策略。