AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 523738
Accepted
SwDevMan81
SwDevMan81
Asked: 2013-07-17 07:05:47 +0800 CST2013-07-17 07:05:47 +0800 CST 2013-07-17 07:05:47 +0800 CST

如何设置正确的 SPF 记录

  • 772

我正在尝试设置一个非常基本的 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
email
  • 2 2 个回答
  • 15376 Views

2 个回答

  • Voted
  1. gparent
    2013-07-17T07:35:00+08:002013-07-17T07:35:00+08:00

    您在 SPF 记录中输入了错误的 IP 地址。

    这是当前的记录:

    littlejawsbigsmiles.com. 3600   IN      TXT     "v=spf1 a mx ptr ip4:72.167.234.245 -all"
    

    这是您发送的 IP:

    72.167.234.239
    

    这明显不同于72.167.234.245.

    修复记录,使其没有错误,并且一切正常。

    要包括整个地址范围,请使用:

    "v=spf1 mx ip4:72.167.234.0/24 -all"
    

    顺便说一句,GoDaddy 提供了一篇关于如何使用它们设置 SPF 记录的知识库文章:http: //support.godaddy.com/help/article/7926/adding-or-editing-spf-records

    • 5
  2. Best Answer
    SwDevMan81
    2013-07-18T09:46:51+08:002013-07-18T09:46:51+08:00

    所以我终于找到了这个问题(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,你可以看到它显示 error PermError SPF Permanent Error: Too many DNS lookups。这是 Godaddy 需要在全球范围内解决的问题(不仅仅是我的网站)。该问题记录在他们的网站上。我确实收到了他们的回复,表明这不是他们的问题:

    此外,虽然我们提供创建 SPF 记录的能力,但管理和设置责任完全是客户的责任。

    我能够通过检查我的电子邮件标头并找到将其发送出去的服务器(似乎是 range 72.167.234.236-245)来解决这个问题。使用上面链接的 SPF 解析器,我能够确定我的网站似乎正在使用spf102.secureserver.net. 我不确定这是否会改变我的网站,Godaddy 还没有告诉我答案。我将我的 SPF 记录更改为包含spf102.secureserver.net,它没有问题Too many DNS lookups,但如果电子邮件可以更改并发送出去,这可能是一个问题spf101.secureserver.net。

    最终工作记录将基于用于发送电子邮件的服务器,但如果您托管在 Godaddys 服务器上并使用它,它应该看起来像这样:

    v=spf1 mx include:spf102.secureserver.net -all
    

    通过这两个更新,我能够将邮件发送到 google 和 hotmail 电子邮件帐户,并且它们不再进入垃圾邮件/垃圾文件夹(是的!)

    感谢@MadHatter、@gparent 和@TheCleaner 对追踪此事的支持。

    • 4

相关问题

  • 如何绕过 ISP 的限制性电子邮件政策?

  • SharePoint 传入电子邮件出现“未知别名”错误

  • 电子邮件帐户的角色名称与人名

  • 如何在笔记本电脑上使用 Tobit David?[关闭]

  • 随行人员通过 VPN 连接到 Exchange 2007

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve