我们有一个 CMS 系统,其中多个客户从单个虚拟机运行他们的网站。CMS 生成的页面允许填写表单,从而触发发送电子邮件。我无法弄清楚如何正确配置 SPF 记录,以便电子邮件不会被标记为垃圾邮件。据我所知,如果我们托管三个客户域:
customer1.com
customer2.info
customer3.co.uk
所有这些都在一台名为 my-cms-uk.com 的机器上
然后我需要为所有三个客户域以及 my-cms-uk.com 添加 SPF 记录,它们都指定 my-cms-uk.com 的 IP 被允许向该域发送电子邮件?我不确定是否也需要为机器的 FDQN 添加 SPF。
我尝试过谷歌搜索,但找不到为多个域设置 SPF 的明确说明。我尝试使用的 SPF 记录指定主机的 IP,例如
“v=spf1 ip4:111.22.33.444 mx ~全部”
让我更加困惑的是,我查看了使用 mailgun 和 aweber 的人发送的电子邮件的 SMTP 设置,他们似乎没有我期望的 SPF 设置。例如,Cal Newport (calnewport.com) 有一个使用 aweber 的电子邮件列表,但 calnewport.com 没有允许 aweber 作为电子邮件发件人的 SPF 记录?
答案1
它们之间没有任何联系,因为 SPF 记录是按照领域,不是每发送主机。
如果几个不同的域名各自发送仅来自一个主机的电子邮件,例如mail.example.com
,则每个域名都应该有一个 SPF 记录,例如a:mail.example.com -all
。请注意,每个域名都不会引用从发送的其他域名mail.example.com
。
重要的是mail.example.com
每个域都有一个指向允许发送主机的 IP 地址的 A 记录。
一个域的 SPF 记录可能会引用另一个域,例如在撰写本文时,hotpoint.co.uk
的 SPF 记录是include:_spf.google.com ip4:46.37.28.0/24 ip4:89.119.89.27 ip4:89.119.89.28 ip4:193.104.11.3 ~all
。这包括谷歌,不是因为谷歌的电子邮件也来自 hotpoint 的服务器,而是因为 hotpoint 的邮件可能来自谷歌的基础设施。如果没有其他除了您的单个服务器之外,您列出的每个客户域的电子邮件都有合法发件人,这种复杂情况并不适用于您。
编辑:如果您正在考虑设置 SPF 记录,我强烈建议您不要担心是否要以~all
或?all
(或更糟的是+all
)结尾?不以 结尾的 SPF 记录-all
无法用于任何用途,因此毫无意义;互联网并不关心您说的是哪个主机能发送电子邮件,它关心你说的是哪个主机不能。SF 上的一些邮件管理员将没有终端的 SPF 记录的存在-all
作为垃圾邮件域的积极指标。