我之前没有在我的域名上设置任何 SPF。我使用 Google Workspace。我现在使用 SendGrid API。
这是我设置的 SPF 记录
v=spf1 include:_spf.google.com include:_mailcust.gandi.net include:sendgrid.net ~all
SendGrid 已验证。
然而,我使用 Gmail 发送的邮件被退回了(出于安全考虑,电子邮件地址已被删除)
550 5.7.23 : Sender address rejected: Message rejected due to: SPF fail - not authorized. Please see http://spf.libraesva.com/Why?s=mfrom;[email protected];ip=209.85.218.45;[email protected]
该链接上指出...
...they need to change xxxx.com SPF record so that it authorizes mail-ej1-f45.google.com (209.85.218.45). They should add this to their SPF record:
a:mail-ej1-f45.google.com
但我很好奇,为什么我需要使用a:mail-ej1-f45.google.com
而不是或以及include:_spf.google.com
我联系了 Google 支持人员,他们表示:
如果您使用 sendgrid 和 Gmail,请添加以下 SPF 记录“v=spf1 include:_spf.google.com include include:sendgrid.net ~all”
但这是我已经设置的 SPF 记录,自从联系他们以来,他们并没有提供太多帮助。
目前我的 SPF 如下所示,但我想知道:
为什么我必须添加
a:mail-ej1-f45.google.com
SPF 记录我可以将
include:_spf.google.com
和两者都a:mail-ej1-f45.google.com
记录下来吗?“v=spf1 包括:_spf.google.com 包括:_mailcust.gandi.net 包括:sendgrid.net a:mail-ej1-f45.google.com ~all”
答案1
这并不难。
找到 mail-ej1-f45.google.com 的地址 (其为 209.85.218.45) 查找 _spf.google.com 的 TXT 记录:
“v=spf1 包括:_netblocks.google.com 包括:_netblocks2.google.com 包括:_netblocks3.google.com ~all”
查找列出的每条记录。实际上,您只需检查第一条即可找到:
“v = spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~全部”
mail-ej1-f45.google.com 位于 209.85.128.0/17
因此,如果您从包含“include:_spf.google.com”的 SPF 记录的域发送邮件,而该邮件因 SPF 错误而失败,则问题出在接收端。