为具有大量电子邮件网关的共享托管服务设置 SPF 记录

为具有大量电子邮件网关的共享托管服务设置 SPF 记录

我的网站位于 Hostgator 共享主机上,我需要为我的电子邮件设置 SPF,这样我发送的电子邮件就不会被退回。因此,我必须向我的域的 DNS 添加 TXT 记录,列出我域电子邮件的所有可能发件人。这应该不是什么大问题,对吧?

不幸的是,我发现 Hostgator 通过多个电子邮件网关服务器路由来自共享主机的外发电子邮件,所有服务器的域名格式gatewayXX.websitewelcome.com均为两位数的 XX。因此,我开始向自己发送测试电子邮件,并在找到新服务器时添加它们。找到其中六个后,我得到了以下 SPF 记录...

v=spf1 +a +mx +ip4:50.87.144.137 +a:gateway33.websitewelcome.com +a:gateway26.websitewelcome.com +a:gateway20.websitewelcome.com +a:gateway24.websitewelcome.com +a:gateway22.websitewelcome.com +a:gateway36.websitewelcome.com ~all

...并不断发现更多。

我最终编写了一个脚本,遍历了上述格式的 100 个可能的域名,发现其中 28 个存在,映射到总共 705 个 IP 地址。不:我的 SPF 记录中不能有那么多域名,因为DNS 查询次数过多以及字符太多

我该如何实现这一点?我必须扫描 705 个 IP 地址并找出哪些 CIDR 标记的网络覆盖了它们吗?那么,我是否允许 Hostgator 上托管的任何人在其外发邮件中欺骗我的域名?我应该采取完全不同的方法吗?或者我应该寻找具有少量公开可见的外发电子邮件服务器的其他托管设置?

答案1

你可以节省很多时间,只要搜索hostgator 支持站点。 :)

来自上面链接的页面:

v=spf1 a mx include:websitewelcome.com ~all

答案2

Hostgator 可能与大多数共享托管服务一样,拥有一个主 SPF 记录,旨在覆盖其所有电子邮件服务器。这样一来,该公司就可以重新组织其服务器,而无需所有客户编辑其 S​​PF 记录。要将 Hostgator 的记录包含在我自己的记录中,我需要将我的 SPF 记录设置为以下内容:

v=spf1 +a +mx +ip4:50.87.144.137 +include:websitewelcome.com ~all 

其中50.87.144.137是我的服务器的主 IP 地址,~all表示如果发出的电子邮件与 websitewelcome SPF 记录不匹配,则“软失败”。 (最终我会将其更改为-all,这将退回任何不匹配的电子邮件。)

但是,有一个问题。以下是 Hostgator 的记录websitewelcome.com(换行):

v=spf1 a mx ip4:64.5.0.0/16 ip4:67.18.0.0/16 ip4:69.41.224.0/19 
ip4:69.56.0.0/16 ip4:69.93.0.0/16 ip4:70.85.0.0/16 ip4:74.52.0.0/16 
ip4:174.132.0.0/16 ip4:174.120.0.0/16 ip4:173.192.100.229 
include:spf2.websitewelcome.com include:spf.websitewelcome.com 

以下是所包含的记录spf2.websitewelcome.com

v=spf1 a ip4:192.185.0.0/16 ip4:50.116.124.0/22 ip4:173.192.111.0/24

以下是包含的spf.websitewelcome.com记录(再次换行):

v=spf1 a mx ip4:173.192.0.0/16 ip4:174.121.0.0/16 ip4:174.122.0.0/16 
ip4:174.37.0.0/16 ip4:184.172.0.0/16 ip4:184.173.72.107/32 
ip4:50.22.0.0/16 ip4:70.84.0.0/16 ip4:70.86.0.0/16 ip4:70.87.0.0/16 
ip4:74.53.0.0/16 ip4:74.54.0.0/16 ip4:96.125.0.0/16

Hostgator 不得不将其记录分成三部分,因为他们的 IP 范围列表几乎是 SPF 记录最大长度(256 个字符)的两倍。但是,当我使用http://www.kitterman.com/spf/validate.html,我收到PermError SPF Permanent Error: Void lookup limit of 2 exceeded错误。即使我输入地址,也收到同样的错误websitewelcome.com

我的理解是,这个限制是有争议的;我希望目标电子邮件服务器不会强制执行它。

第二个问题是 SPF 记录中允许的网络集的广度:可能有数百万 Hostgator 客户可以在其外发邮件中欺骗我的域名。但是,如果不更换提供商,这种情况是无法改变的。也许有一天会改变。

答案3

经过一番挖掘,我得出了以下结论:

v=spf1 +a +mx +ip4:50.87.144.50 +include:spf.websitewelcome.com +include:spf2.websitewelcome.com ~all

其中 50.87.144.50 是我的服务器的主接口 IP 地址...

避免直接使用 websitewelcome.com 可以解决“查找次数过多”的问题,并且仍然涵盖所有相关地址,因为查找 websitewelcome.com 现在会返回以下内容:

Found v=spf1 record for websitewelcome.com: 
v=spf1 include:spf.websitewelcome.com

它不再拥有自己的 IP 地址。因此,您可以放心地将其从记录中删除。而且,由于该记录和 spf.websitewelcome.com 均未引用 spf2,因此,确保您拥有所有 IP 地址的唯一方法是根据我发布的记录来制定记录。

并且尝试一下这个测试工具:https://www.mail-tester.com/ 它简单、易于使用,并且在尝试追踪问题时非常有用。

答案4

由于这个线程可能会出现在 SPF 记录和 HostGator 的搜索中,我将添加这个花絮(这花费了我大量的实验和研究来解决问题,在 HostGator 被出售之前,其技术人员曾经自动为共享主机经销商处理过这个问题)。

如果您通过“HostGator”拥有 ENOM 经销商帐户,则需要仔细检查是否已对哪个域的 spf 记录进行了此更改,该域代表您从 ENOM 发送了域相关通知(即,您的 Enom 管理员帐户的“whois”电子邮件地址的域),您需要确保在您的 SPF 记录中包含(新更改的)信息:include:rightside.co 我通过在各种 enom 子帐户中进行大量更改对此进行了广泛测试,这些更改强制将消息发送到域的各种联系电子邮件地址。如果您有经销商帐户,但不包含 enom/rightside 的发送信息,那么即使发送给您客户的通知没有被他们的服务器退回,它们仍可能会被标记为垃圾邮件!

HostGator 的蹩脚解决方案是让我的客户“查看他们的垃圾邮件文件夹”。现在,我在 HostGator 服务器上只剩下一两个帐户,到年底它们就会被移除!

相关内容