我对专用托管环境中的 SPF 记录有疑问。我希望为我的专用服务器设置 SPF 记录,但我不确定我的理解是否正确。
第一个问题:我是否只需要为持有 NS 和 PTR 记录的域设置 SPF 记录,还是需要为服务器上的每个域设置它?
如果我只需要为 NS 域设置,那么可以在每个域上进行设置以覆盖 NS 域吗?
此外,如果仅适用于 NS 域,我如何确保使用远程 SMTP 服务器的客户发送电子邮件时不会出现问题?即 Google Apps 或外部 MX 记录。
例如:我的 NS 域名是 example.com,我的一个客户端是 helloworld.com。我需要在 helloworld.com、example.com 还是两者上设置 SPF 记录?如果我不在 helloworld.com 上设置 SPF 记录,example.com 上的 SPF 记录是否会影响 helloworld.com?
答案1
(根据问题的编辑对答案进行了编辑。)
视情况而定。SPF 记录应应用于信封 From
,而不是标题 From:
。如果您的服务器使用 SRS,则一切都应该没问题;信封From
将被重写为example.com
,并且您的 SPF 记录将覆盖它。否则,这将取决于他们的 MUA(和/或内部邮件服务器)将信封设置为什么From
;如果是helloworld.com
,那么是的,他们的 SPF 记录(如果存在)将需要允许您的基础设施发送。
也就是说,如果他们是您的客户,将您纳入他们的 SPF 记录中并没有什么坏处,他们只需使用一个简单的 即可完成include:
。安全总比后悔好,并且不要忘记留意 DNS 查找限制。
至于你问题的最后一部分,你也许应该读一下关于设置 SPF 记录的典型问题。
答案2
需要为每个域配置 SPF。虽然您可以使用通配符,但这会有效地创建与通配符匹配的所有可能的子域。您很少会想使用通配符。SPF 不适用于PTR
记录,并且您的NS
域通常不应该发送电子邮件。
如果您想保护不应发送电子邮件的域名不被用于发送垃圾邮件,请使用 SPF 记录,例如v=spf1 -all
。我建议这样做,但许多域名没有这种覆盖范围。(我看到其中许多被我的垃圾邮件过滤器拒绝。)这应该包括一些垃圾邮件发送者倾向于喜欢的网络域。
From:
信封发件人地址、、和类似标头中使用的域Sender:
应具有 SPF 记录,例如v=spf1 a mx -all
。这将给使用其他 SMTP 服务器从您的域发送电子邮件的发件人带来问题。SPF 将应用于信封发件人地址,在大多数情况下,该地址应与发件人地址标头之一匹配。
如果您想允许其他 SMTP 服务器代表您的域发送邮件,您可以使用该include
机制。可以应用的域查找数量是有限制的,因此使用A
或等机制进行深度嵌套MX
可能会导致检查在所有机制完成之前失败。您还可能会引入一种~all
机制,这将大大违背使用 SPF 的目的。
设置您的 SMTP 服务器以在提交端口 (587) 上接受来自用户的经过身份验证的连接,这将允许他们使用您的邮件服务器发送电子邮件。提交端口应配置为启用 StartTLS。身份验证应需要 TLS。
您的 SMTP 服务器应该具有允许其发送电子邮件的 SPF 记录。类似这样的记录v=spf1 a -all
就比较合适。
考虑查看DMARC
哪些内容允许您发布有关如何处理电子邮件 SPF 和 DKIM 的政策。您还可以收到有关您的域是否符合政策的反馈。这可能包括您的域被用于发送垃圾邮件的迹象。