![将 SPF 记录从 ~all 更改为 -all,其中员工收件箱位于 Google,而 Amazon SES 用于网站交易电子邮件](https://linux22.com/image/787017/%E5%B0%86%20SPF%20%E8%AE%B0%E5%BD%95%E4%BB%8E%20~all%20%E6%9B%B4%E6%94%B9%E4%B8%BA%20-all%EF%BC%8C%E5%85%B6%E4%B8%AD%E5%91%98%E5%B7%A5%E6%94%B6%E4%BB%B6%E7%AE%B1%E4%BD%8D%E4%BA%8E%20Google%EF%BC%8C%E8%80%8C%20Amazon%20SES%20%E7%94%A8%E4%BA%8E%E7%BD%91%E7%AB%99%E4%BA%A4%E6%98%93%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6.png)
我有兴趣在我的 SPF 记录中从 移动~all
到 ,-all
以便进一步锁定我的域名电子邮件,但我想知道可能会产生什么影响(我确实了解 ~ 是 SOFTFAIL 而 - 是 FAIL)。
我的域名的 SPF 记录目前如下所示:v=spf1 include:_spf.google.com ~all
因为我们使用 Google Workspace 发送电子邮件。但我们也使用 Amazon SES 来处理我们网站的事务性电子邮件(帐户注册、订单确认等),因此我们配置了一些 CNAMES 来启用此功能。对于我们的营销电子邮件,我们使用 Drip,它也让我们配置了一个 CNAME,他们在底层使用 SendGrid。
如果我将 SPF 从 更改为 ,~all
这-all
会影响通过 Amazon SES 或 Drip/Sendgrid 发送的电子邮件的传递率吗?Amazon 和 Drip 的说明不包括修改我的 SPF 记录的步骤,所以我猜应该不会有影响,但这只是猜测。
还有一件事要考虑,那就是我还在考虑使我的 DMARC 记录更加严格,将其从v=DMARC1; p=none;
(无策略)更改为。这是否也会对我是否应该在 SPF 中v=DMARC1; p=quarantine;
使用产生影响?-all
编辑附加信息:
更清楚一点,我的 DNS 中有这些 CNAME 条目,这些是我的 Drip 提供商和 Amazon SES 专门请求的……
类型 | 姓名 | 价值 |
---|---|---|
别名记录 | drip.herobullion.com。 | u19706134.wl135.sendgrid.net |
别名记录 | o6x5araaijdl472tryvyp5tvniyzv2o2._domainkey | o6x5araaijdl472tryvyp5tvniyzv2o2.dkim.amazonses.com |
答案1
这取决于收件人的服务器如何配置来处理 SPF 记录,但常见的用法是将它们视为:
~
= 如果发送服务器在 SPF 记录中列出,那么它是好的,如果不是,那么评估它和电子邮件,就像你在没有 SPF 记录的情况下一样。
-
= 如果发送服务器在 SPF 记录中列出,那么它是好的,如果不是,则拒绝/忽略该消息,因为它不是来自合法来源。
如果您仅有 SPF 记录并且每个发件人(特别是示例中的 Amazon 和 Sendgrid)都没有设置 DKIM,那么您可能已经收到来自某些目的地的电子邮件,因为 Gmail 等地方已开始要求所有/大多数他们接受的电子邮件都必须设置 SPF 或 DKIM。
无论您从 切换~
到-
,我都建议您需要将 Amazon 和 Sendgrid 添加到您的 SPF 记录中,这样这些来源才会被列为合法的出站电子邮件来源。
每项服务可能都有关于正确详细信息的信息(可能在各自的控制面板/帮助文档中),但在网上查找,你可以在以下地方找到每项服务的信息:
https://dmarcly.com/blog/how-to-set-up-spf-and-dkim-for-sendgrid
https://dmarcly.com/blog/how-to-set-up-spf-and-dkim-for-amazon-ses
因此,如果你将这些添加到你现有的 SPF 中,你最终会得到
v=spf1 include:_spf.google.com include:amazonses.com include:sendgrid.net ~all
答案2
我认为 Keith 的回答可能对某些人有帮助,但我深入挖掘了一下,发现了一些额外的细节,帮助我理解我当前的 SPF 设置没问题,并且更改-all
不会影响我的 Amazon SES 和 Drip 电子邮件。详情...
DMARC 报告有助于显示通过 SPF
我已经通过名为 mailercheck.com 的服务设置了一些 DMARC 报告,该服务获取我的 DMARC xml 报告并将其汇总在一份易于理解的 Web 报告中,显示哪些发送 IP 已通过 SPF 和 DKIM。
顶级报告显示,我的 drip.herobullion.com CNAME 和我的 *.us-west-2.amazonses.com CNAMES 的发送 IP 均已通过 SPF:
深入研究其中一个 Amazon SES 发送 IPS 可以得到更多详细信息:
对 Drip 发送 IP 的深入分析也给出了类似的详细信息:
因此看起来 SPF 正在通过,因为我的 CNAME 记录有一些关联的 SPF 记录......
CNAME DNS 条目使更清晰
因此,上面确定对于我的 Drip 提供商,CNAME 指向 SendGrid 的主机 u19706134.wl135.sendgrid.net,所以当我运行dig txt u19706134.wl135.sendgrid.net
检查该域的 TXT 记录时,我得到了以下结果:
v=spf1 ip4:167.89.40.107 ip4:167.89.40.148 ip4:167.89.79.110 ip4:167.89.79.139 ip4:167.89.93.30 ip4:168.245.74.76 ip4:168.245.95.128 ip4:168.245.99.76 -all
因此,我的 Drip 提供商发送的这些电子邮件确实通过了 SPF,因为它们是从其中一个 IPS 发送的。Amazon SES 方面的情况也一样。
但是为什么这些提供商没有使用我的主域的 SPF?
电子邮件的smtp.mailfrom
标签用于确定要检查 SPF 的域名
当我检查我的一封 Amazon SES 电子邮件的标头时,我看到smtp.mailfrom
标签指定了发件人,如下所示
smtp.mailfrom=01010188da94f0b8-5f5e5be2-0842-4c4e-89ab-8600a4bfbc5b-000000@us-west-2.amazonses.com
此外,标题写道
spf=pass (google.com: domain of 01010188da94f0b8-5f5e5be2-0842-4c4e-89ab-8600a4bfbc5b-000000@us-west-2.amazonses.com designates 54.240.27.22 as permitted sender)
同样,我的滴灌电子邮件也有smtp.mailfrom="bounces+19706134-e9bb-shaun+test3=herobullion.com@drip.herobullion.com"
因此,即使电子邮件有其他标头,例如,电子邮件提供商也会使用标签来确定要针对哪个域检查 SPFFrom: Our Company <[email protected]>
smtp.mailfrom
这篇文章更详细地解释了这一点https://www.valimail.com/blog/understanding-email-authentication-headers
因此,我可以相对确定将我的主要域的 SPF 从 更改~all
为-all
不会影响来自这些其他提供商的电子邮件。