我正在尝试设置一个非常基本的 SPF 记录。我在 Godaddy 上托管我的网站并使用 Godaddy 的电子邮件服务器。我正在使用 php mail() 调用(我知道,我已经阅读了大量使用 PHP Mailer 或其他人的地方,但我选择了默认的 mail() 函数,这不是我的问题)。现在电子邮件中的 spf 记录正在返回,neutral
如下所示:
Delivered-To: [email protected]
Received: by 10.52.171.166 with SMTP id av6csp133324vdc;
Tue, 16 Jul 2013 07:43:23 -0700 (PDT)
X-Received: by 10.49.104.180 with SMTP id gf20mr2338989qeb.59.1373985802775;
Tue, 16 Jul 2013 07:43:22 -0700 (PDT)
Return-Path: <[email protected]>
Received: from p3nlsmtp14.shr.prod.phx3.secureserver.net (p3nlsmtp14.shr.prod.phx3.secureserver.net. [72.167.234.239])
by mx.google.com with ESMTP id d19si710455qey.143.2013.07.16.07.43.22
for <[email protected]>;
Tue, 16 Jul 2013 07:43:22 -0700 (PDT)
Received-SPF: neutral (google.com: 72.167.234.239 is neither permitted nor denied by best guess record for domain of [email protected]) client-ip=72.167.234.239;
Authentication-Results: mx.google.com;
spf=neutral (google.com: 72.167.234.239 is neither permitted nor denied by best guess record for domain of [email protected]) [email protected]
Received: from P3NW8SHG339 ([184.168.27.44])
by p3nlsmtp14.shr.prod.phx3.secureserver.net with
id 12jN1m0080x5yNo012jNyX; Tue, 16 Jul 2013 07:43:22 -0700
Date: Tue, 16 Jul 2013 07:43:21 -0700
Subject: Little Jaws Big Smiles Registration Confirmation
X-PHP-Originating-Id: [10610735]
To: "Person" <[email protected]>
From: "Little Jaws Big Smiles" <[email protected]>
Reply-To: "Little Jaws Big Smiles" <[email protected]>
Return-Path: "Little Jaws Big Smiles" <[email protected]>
Message-ID: <[email protected]>
X-Mailer: PHP/5.2.17
MIME-Version: 1.0
Content-type: text/html; charset=ISO-8859-1
Organization: Little Jaws Big Smiles
ip72.167.234.239
对应于p3nlsmtp14.shr.prod.phx3.secureserver.net
,我猜是邮件服务器实际发送我的电子邮件。
- 我有一个 A(主机)记录设置,其中包含我的域的实际 IP 地址。
- 我有提供的默认 CNAME(别名)列表
- 我有两个提供的 MX(邮件交换器记录)
- mailstore1.secureserver.net
- smtp.secureserver.net
- 有两个默认名称服务器设置
- ns45.domaincontrol.com
- ns46.domaincontrol.com
- 我已经按照以下方式设置了 TXT SPF 记录(没有引号,因为这就是 Godaddy 输入它的方式):
v=spf1 a mx ptr ip4:72.167.234.245 -all
然而,这仍然会导致中性 SPF 结果。我已经等了 48 小时让记录采取行动。我也读过SPF Syntax
并且我认为我已经适当地设置了它(但我以前从未这样做过,所以我可能完全误解了这一点)
我还尝试了 kitterman 的验证脚本,结果如下:
Found v=spf1 record for littlejawsbigsmiles.com: v=spf1 a mx ptr ip4:72.167.234.245 -all
evaluating... SPF record passed validation test with pySPF (Python SPF library)!
有没有人看到我的记录定义有问题,或者我遗漏了什么?
我正在尝试从 [email protected] 发送邮件
如果我需要提供任何其他信息,请告诉我。
更新根据@TheCleaner 的要求,我按照Godaddys 网站上的说明创建 SPF 记录。以下是我选择的步骤和选项以及我选择它们的原因。
在添加 SPF 记录下
- 第 4 步:我选择了
GoDaddy.com, LLC only
- 我只使用他们的服务器发送电子邮件
- 第5步:我选择
All Inbound Servers May Send Mail
- 我不确定这是否适用于我,但我选择它以防万一
- 第 6 步:我没有选择出站记录。
- 我的域不是邮件服务器
- 第 7 步:我没有选择 PTR
- 我的域不是邮件服务器
- 第 8 步:我添加了
72.167.234.0/24
因为这似乎是 Godaddy 用来发送电子邮件的邮件服务器 - 我还选择
Exclude all hosts not specified here
了添加-all
结果 SPF 记录如下。如果这解决了我的问题,我会尝试并回帖。如果我对上述步骤的假设不正确,请告诉我。
v=spf1 mx include:72.167.234.0/24 -all
您在 SPF 记录中输入了错误的 IP 地址。
这是当前的记录:
这是您发送的 IP:
这明显不同于
72.167.234.245
.修复记录,使其没有错误,并且一切正常。
要包括整个地址范围,请使用:
顺便说一句,GoDaddy 提供了一篇关于如何使用它们设置 SPF 记录的知识库文章:http: //support.godaddy.com/help/article/7926/adding-or-editing-spf-records
所以我终于找到了这个问题(godaddy techincal support 说他们无法帮助解决“scirpting”问题)。事实证明,他们确实对 SPF 记录有问题:
C:\php5\php.ini
显然,当您设置一个新的主机帐户时, Windows 主机的默认文件将设置sendmail_from
为[email protected]
,这是我使用 php 的 mail() 函数发送的电子邮件的实际发送地址。我将其更改为[email protected]
并更接近解决我的问题。现在到我遇到的第二个问题,它导致 SPF 仍然失败。事实证明,使用 Godaddys 默认创建 SPF 记录
include:spf.secureserver.net
包含太多查找。您可以使用此 SPF Parser验证这一点并输入spf.secureserver.net
. 您将看到比最多 10 次查找要多得多。使用Kitterman 的验证脚本,如果你输入
spf.secureserver.net
,你可以看到它显示 errorPermError SPF Permanent Error: Too many DNS lookups
。这是 Godaddy 需要在全球范围内解决的问题(不仅仅是我的网站)。该问题记录在他们的网站上。我确实收到了他们的回复,表明这不是他们的问题:我能够通过检查我的电子邮件标头并找到将其发送出去的服务器(似乎是 range
72.167.234.236-245
)来解决这个问题。使用上面链接的 SPF 解析器,我能够确定我的网站似乎正在使用spf102.secureserver.net
. 我不确定这是否会改变我的网站,Godaddy 还没有告诉我答案。我将我的 SPF 记录更改为包含spf102.secureserver.net
,它没有问题Too many DNS lookups
,但如果电子邮件可以更改并发送出去,这可能是一个问题spf101.secureserver.net
。最终工作记录将基于用于发送电子邮件的服务器,但如果您托管在 Godaddys 服务器上并使用它,它应该看起来像这样:
通过这两个更新,我能够将邮件发送到 google 和 hotmail 电子邮件帐户,并且它们不再进入垃圾邮件/垃圾文件夹(是的!)
感谢@MadHatter、@gparent 和@TheCleaner 对追踪此事的支持。