我最近换用了 Google Apps,这个帖子
http://www.google.com/support/a/bin/answer.py?answer=178723
建议更新 SPF 记录如下:
'v=spf1 include:_spf.google.com ~all'. (1)
由于我在域服务器上运行 cron 作业,该服务器也会发送电子邮件,因此我想将域邮件服务器作为合法来源。那么如何在 SPF 中同时添加 Google 邮件服务器和域邮件服务器?
一些帖子还提到,Google 应用的记录应该是:
'v=spf1 include:aspmx.googlemail.com ~all' . (2)
(1)和(2)之间有细微的差别。哪一个是正确/优选的?
我当前的 SPF:“v=spf1 a mx ptr include:domain.com ?all”
请帮忙。谢谢。
更新: 我的主机是 bluehost.com。以下是合法的 SPF 记录:
“v=spf1 a mx ptr 包括:bluehost.com 包括:_spf.google.com ~all”
请告诉我~all 或 ?all 是否是必需的?这是什么意思?
答案1
注意:我假设您实际上与域名“domain.com”没有任何关系,这是一个真实的地方。如果不提供实际详细信息,请使用 example.com
我先回答最后一部分。~all 和 ?all 之间有一些区别,但从接收邮件的人的角度来看,两者的意思几乎相同。基本上,你是在说“我不知道我的邮件到底来自哪里;这取决于你如何猜测。”请考虑使用“-all”。这传达了“我的邮件仅来自此记录中列出的主机;其他任何邮件都是垃圾邮件。”Google 答案中的警告是因为,正如你可能猜到的那样,如果你错误地配置了 spf 记录,遗漏了一些合法的发送主机,那么有些人可能会丢弃你的邮件。除非你运行邮件列表服务器,否则如果你要发布 spf 记录,-all 可能是正确的做法。发布 ~all 或 ?all 并不比没有 spf 记录更有帮助。请参阅:http://www.openspf.org/SPF_Record_Syntax
准确回答第一部分有点困难,因为您没有说明当前发送服务器的详细信息。Google 的建议很好,因此如果您使用它们,您肯定会希望有“v=spf1 include:_spf.google.com”。如果您有更多主机,只需将它们以空格分隔的格式附加到该示例中即可。您需要找出您当前的发送 IP 地址,并使用 ip4:nnn.nnn.nnn.nnn 语法添加它们。它看起来类似于:
v=spf1 include:_spf.google.com ip4:192.168.0.1 ip4:192.168.0.2 -all
您可能不需要记录中额外的“a”、“mx”、“ptr”和其他关键字,包含的 bluehost.com 已经涵盖了这些关键字。如果您从 Google 和 Bluehost 发送,则可能需要以下内容:
v=spf1 include:bluehost.com include:_spf.google.com -all
如果您不确定您的发送 IP 地址是什么,就不要发布 SPF 记录。
答案2
您还可以尝试对多台服务器执行以下操作:
v=spf1 ip4:41.220.128.0/20 ip4:212.50.160.34 ip4:83.246.86.186 a mx ptr:habari.co.tz ptr:smtp.com ptr:smtp2.go.tz ?all