通过 Gmail 发送的 DNS 中的 SPF 记录

Joh*_*ohn 3 domain-name-system email spf

我有一个旧域名,我想将其重新用于一个可以发送电子邮件的新网站。我正在使用 Asp.Net Core,如果这有影响的话(我不认为有影响)。我已经编写了几个在 .Net 中发送电子邮件的应用程序,并且我非常有信心我的代码是正确的。我对 DNS 配置更困惑,尤其是 SPF 记录。

我在 Name.com 上托管我的 DNS。下图中,可以看到SPF记录,即

"v=spf1 include:_spf.google.com -all" 
Run Code Online (Sandbox Code Playgroud)

DNS 条目

但是,我注意到有些 TXT 记录被引用,有些则没有。所以,我想知道这是否有什么不同。另一个问题说,如果TXT记录中的答案包含空格,那么需要引用它。所以我怀疑那部分没问题。

我所困扰的是这个 TXT 记录的实际格式。可以看到MX记录是

aspmx.l.google.com
Run Code Online (Sandbox Code Playgroud)

我曾经有一个包含 MX 的 SPF 记录,但由于我只通过 gmails 服务器 (smtp.gmail.com) 发送,所以我将其删除。然而,消息不断被屏蔽。

具体来说,我的网站托管在 Azure 上(但我认为这没有什么区别),使用 smtp.gmail.com 作为服务器地址通过 SMTP 发送。当它发送到@gmail.com电子邮件地址时,电子邮件被阻止,我的发送电子邮件地址收到此消息:

“您发往 xxx@gmail.com 的消息已被阻止。有关详细信息,请参阅下面的技术详细信息。

“回应是:

“550 5.7.26 此邮件已被阻止,因为发件人未经身份验证。Gmail 要求所有发件人使用 SPF 或 DKIM 进行身份验证。身份验证结果:DKIM 未通过 SPF [trulymail.com],ip:[209.85.220.41] 已通过未通过 要缓解此问题,请访问 Gmail 的身份验证指南以获取有关设置身份验证的说明”

阻止消息

当我发送到非 Gmail 域时,它可以工作,但对于 @gmail.com 地址,邮件会被阻止。

它指出这是 SPF 记录的问题。然而,据我所知,我的 SPF 记录设置正确。

这是SPF问题吗?

如果是,如果有人使用我的发送域仅通过 gmail Web 界面或通过客户端/代码通过 smtp.gmail.com 发送,谁能告诉我正确的 SPF 记录应该是什么?

小智 7

怀疑问题出在 SPF 记录和那些引用上。

如果我对您的 SPF TXT 记录进行 DNS 查找,trulymail.com则返回的结果为:

trulymail.com   text =
        ""v=spf1 include:_spf.google.com -all""
Run Code Online (Sandbox Code Playgroud)

所以它显示双引号,我建议您需要在 DNS UI 中删除这些引号。

编辑提一下,如果您在线进行 SPF 查找,例如MX Toolbox,它会报告您在该域上没有 SPF 记录,这也会对我说,您当前设置的内容不会被视为有效的 SPF 记录。

  • 区域文件中的 SPF 字符串周围需要引号,但如果您使用 GUI DNS 编辑器,它会根据需要添加它们,因此不应将它们显式放入。 (3认同)