我正在配置我的 linode 服务器,以便从我的 webapp 向用户发送邮件。我可以使用 GoogleApps,但每天 500 封的限制太严格了,因此我尝试自己设置。
我使用 linode 提供的这些说明在我的服务器上设置了 Exim4。一切顺利。我在服务器上使用此命令测试了向我的 gmail/yahoo 发送电子邮件:
$ echo "This is a test from myapp." | mail -s Testing [email protected]
我确实在 Gmail 收件箱中收到了这封邮件(未标记为垃圾邮件),在 Ymail 中也收到了这封邮件(标记为垃圾邮件)。为了不被标记为垃圾邮件,我检查了已发送邮件的标题。
我在 Gmail 标头中看到了以下几行(我用 XXX 进行混淆):
Received-SPF: neutral (google.com: 69.XXX.XXX.XXX is neither permitted nor denied by best guess record for domain of [email protected]) client-ip=69.XXX.XXX.XXX;
Authentication-Results: mx.google.com; spf=neutral (google.com: 69.XXX.XXX.XXX is neither permitted nor denied by best guess record for domain of [email protected]) [email protected]
这是雅虎收到的电子邮件的标题:
Received-SPF: none (mta1192.mail.mud.yahoo.com: domain of [email protected] does not designate permitted sender hosts)
因此,似乎没有设置 SPF 记录(事实并非如此)。由于我拥有该域名,因此我将以下 SPF 文本插入到我的记录中:
http://img.skitch.com/20100712-gsi6gsqie7d41c35d8gmnxigu2.png
确切地说,我设置了
1)子域名 mail.myapp.com 为指向我的 IP 的 A 记录。2
)“@”的 TXT 记录为“v=spf1 ip4:69.XXX.XXX.XXX aa:mail.myapp.com ~all”
这似乎是我所要做的一切,将 ips/域名适当地设置为 SPF 记录。但是,当再次测试 gmail/yahoo 时,它仍然在 Gmail 上给我相同的“中立”状态,在 Yahoo 上给我相同的垃圾邮件状态。
我怀疑 Google Gmail / Yahoo Ymail 服务器一定在缓存我的 DNS 信息,并且我将继续获得此“中性/垃圾邮件”状态,直到 myapp.com DNS 条目从其缓存中清除。有人知道他们是否缓存此信息,以及通常需要多长时间才能获取 SPF 信息吗?我可能还做错了什么或应该检查什么?
答案1
如果我正确遵循了您的设置,则您的 SPF 记录已在根上设置,但您正在从子域发送电子邮件
如果电子邮件的“发件人”是[电子邮件保护]那么你需要将“@”txt 记录更改为“mail”。如果你从[电子邮件保护]那么你的设置就是正确的。
就像这样
;;in the myapp.com zone
@ IN TXT "v=spf1 ip4:69.XXX.XXX.XXX ~all" ;covers [email protected]
mail IN A 69.xxx.xxx.xxx
mail IN TXT "v=spf1 ip4:69.XXX.XXX.XXX ~all" ;covers [email protected]
答案2
这些记录与常规 A 记录一样,受相同类型的 TTL 约束。TTL 值告知其他 DNS 服务器缓存记录的安全时间。您的 TTL 设置为 300 秒(5 分钟)。但有些邮件程序/DNS 服务器会忽略低于特定限制的 TTL 值,因此很难 100% 确定更改何时已传播。