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)
但是,我注意到有些 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 记录。