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

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

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

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

"v=spf1 include:_spf.google.com -all" 

DNS 条目

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

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

aspmx.l.google.com

我以前有一个包含 MX 的 SPF 记录,但由于我只通过 gmail 服务器 (smtp.gmail.com) 发送,所以我把它删除了。然而,邮件还是被拦截了。

具体来说,我的网站托管在 Azure 上(但我认为这没什么区别),使用 smtp.gmail.com 作为服务器地址通过 SMTP 发送。当它发送到 @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 网络界面或通过客户端/代码通过 smtp.gmail.com 发送,那么有人能告诉我正确的 SPF 记录应该是什么吗?

答案1

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

如果我对您的 SPF TXT 记录进行 DNS 查找,trulymail.com将返回以下内容:

trulymail.com   text =
        ""v=spf1 include:_spf.google.com -all""

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

编辑后提到,例如,如果你在线进行 SPF 查找MX 工具箱它报告说您​​在该域上没有 SPF 记录,这也告诉我您当前设置的内容不被视为有效的 SPF 记录。

相关内容