我需要能够从我的网站上的 php webform 接收电子邮件,我使用 Google Apps 作为邮件收件人,我的网站托管在 Godaddy。我从其他地方收到电子邮件,我查看了一下,我认为问题在于网络服务器认为它们是“本地”消息。除此之外,我还想允许一个名为 bookerville 的网站代表我从我的网站发送消息。他们为我提供了以下 SPF 代码...
v=spf1 include:bookerville.com ?all
有人设置了当前的 SPF 记录,该记录似乎无效(我认为 ip4 位不正确,因为我认为它后面需要服务器 ip 地址?另外,我在另一个帖子中看到 ip4 位不是必需的???:
v=spf1 mx ip4:v=spf1 include:bookerville.com ?all include:secureserver.net ~all
我浏览了网络和这里,这似乎是最接近的解决方案,尽管我不太了解 Mx 和 SPF 记录,所以感觉力不从心。
v=spf1 include:_spf.google.com a a:abc.example.org a:xyz.example.org -all
。这意味着,包括 Google 的 SPF 记录(这将允许其所有邮件服务器代表您的域发送邮件),并允许此域中具有 A 记录的任何内容,并通过验证其 A 记录明确允许其他 2 个主机。其他一切都失败。
假设我的网站是 www.example.com。有人能为我提供合适的 SPF 文本,以包含 bookerville 代码(上面)以及 google 所需的任何代码,并允许 php 表单邮件通过吗?
提前致谢
答案1
v=spf1 include:_spf.google.com include:bookerville.com a -all
分解:
- include:_spf.google.com:将 _spf.google.com 的 SPF 记录解析为 example.com 自己的记录
- include:bookerville.com:将 bookersville.com 的 SPF 记录解析为 example.com 自己的记录
- a:example.com 解析的 IP 地址(因此其在 DNS 中的 A 记录)被允许发送
- -all:所有其他发件人均视为非法
仅在下列条件下才能正常工作:
- example.com 有一条 A 记录
- 当您通过 PHP 表单发送电子邮件时,电子邮件将从 example.com 的 A 记录解析到的 IP 地址发送。
示例 1:
example.com. 在 192.0.2.1
Web 服务器发送源 IP 为 192.0.2.1 的电子邮件 => 确定
示例 2:
example.com. 在 192.0.2.1
Web 服务器发送源 IP 为 192.0.2.88 的电子邮件 => 不行
您可以使用的工具:
- 在线查看SPF记录:http://tools.bevhost.com/spf/
- SPF 语法(我强烈建议阅读一下):http://www.openspf.org/SPF_Record_Syntax
- SPF 记录向导:http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/