我似乎无法为我们的客户获取 SPF 记录,Google 邮件在查找时不断失败。
我的 SPF 记录是
v=spf1 a ip4:80.74.254.215 包括:mx1.helloevery1.co.uk 包括:_spf.google.com 包括:smtproutes.com 包括:smtpout.com
客户端的主要邮件服务器是
smtproutes.com 和 smtpout.com
这些都运行良好,SPF 按预期通过。
mx1.helloevery1.co.uk 是我们的邮件服务器。这是一个简单的 ISPConfig Postfix 设置。我们通过 1 个帐户发送所有邮件,假设它是“[电子邮件保护]“。
已设置用户名和密码以发送,但我们在应用程序中更改了“发件人”地址。发件人地址是“[电子邮件保护]“。
“[电子邮件保护]“未在 mx1.helloevery1.co.uk 上设置。它仅在客户端服务器上设置。
当我从网站通过 SMTP 服务器发送邮件到我的电子邮件帐户时收到以下错误。
已接收-SPF:permerror(google.com:查找期间处理出现永久错误[电子邮件保护])客户端IP=212.71.234.103;
身份验证结果:mx.google.com;spf=permerror(google.com:查找期间处理出现永久错误[电子邮件保护])[电子邮件保护]
这看起来像是尝试在我的 SMTP 服务器上查找域(未配置)。如果我在我的 SMTP 服务器上设置域并创建一个帐户,那么当我通过我的 SMTP 服务器发送时,它将尝试在本地发送。
我一直认为 SPF 只是一种验证工具,用来说明哪个服务器被允许发送,但从未真正考虑过它来自哪个电子邮件。
我陷入困境,因为我找不到与我相关的有关 SPF 记录创建的资源
答案1
SPF 记录表明哪些邮件服务器被允许从发送域发送邮件。基本上,就是发件人:地址中的内容。
因此如果有人以“[电子邮件保护]“并且接收邮件服务器检查 SPF,它会在“ninja.com”上查找 SPF 记录以查看发送邮件服务器是否在列表中。
这回答了你的问题了吗 ?
答案2
谷歌权限错误mx1.helloevery1.co.uk
是您的 SPF 指令中包含的域include:
没有配置自己的 SPF 记录。此问题已处理这里:
包括:<域>:指定领域寻找匹配项。[…]警告:如果领域没有有效的 SPF 记录,结果将导致永久性错误。有些邮件接收方会根据权限错误。
作为你发现了,使用ip4: ip6:
机制会有所帮助(同时使用两者,因为您不知道 Google 看到的发送主机的 IP 是什么,因此如果仅使用可能会失败ip4:
)。为了提供对 IP 地址更改的一定弹性,您可以允许一系列 IP 地址(指示)。
但是,如果您有权访问 -ed 域的 DNS include:
,则为其配置 SPF 记录是一种更干净的解决方案,这样您的发件人的 IP 地址就可以通过该 SPF 测试。它使您的其他 SPF 记录能够抵御 IP 地址更改。
答案3
在 Mwuanno 的建议下,我将记录更改为基于 ip4 和 ip6,并开始接受 spf 记录。记录现在显示
v = spf1 a ip4:80.74.254.215 ip4:212.71.234.103 ip6:2a01:7e00 :: f03c:91ff:fedb:4ec8 包括:smtproutes.com 包括:smtpout.com ~全部
这似乎对我有用,SPF 通过了
答案4
末尾带有 ~all 参数的 SPF 记录可能起作用的原因不一定是因为包含 IP4 和 IP6 地址,而是因为 ~all 参数。
~all 是软失败:SPF 记录中未列出的所有邮件服务器均无权使用发件人的域发送邮件,但域所有者不愿意对此做出强烈断言。换句话说,SPF 检查不一定会失败,接收服务器可能会接受电子邮件。