笔记 by 车东

解决MT发送邮件通知给GMail遇到的SPF校验问题

· MovableType|MT

blog系统有一个很有用的功能就是邮件发送留言通知:但是发送到GMail邮箱的通知信十有八九都会被标记为垃圾邮件。原因就是SPF:Sender Policy Framework (SPF) 要做发送人校验,而MT设置的发信人是留言者的邮件地址,而退信地址是MT系统所在服务器的邮箱。 Received-SPF: **neutral **(google.com: 60.195.249.163 is neither permitted nor denied by domain of apache@localhost.localdomain) 我的WEB服务器上没有任何邮件系统。所以无法通过SPF校验,有严格的SPF校验这也是GMail相对Spam比较少的原因。

如何解决呢: 1 增加邮件系统,设置MX记录等,需要学不少东西; 2 简单的就是先发到不支持SPF校验的邮件系统上,然后再转发给GMail,这时候的退信地址已经转发邮箱了: Received-SPF: **pass **(google.com: domain of #####@yeah.net designates 60.12.227.137 as permitted sender)

什么是SPF? SPF 是发送方策略框架 (Sender Policy Framework) 的缩写,正在逐步成为一个防伪标准,来防止伪造邮件地址。 您的域管理员或托管公司仅需在域名系统 (DNS) 中发布 SPF 记录。这些简单的文本记录标识了经过授权的电子邮件发送服务器(通过列出这些服务器的 IP 地址)。电子邮件接收系统会检查邮件是否来自经过正确授权的电子邮件发送服务器。检查步骤如下,发送人向接收方发送一封电子邮件后,邮件接收服务器接收电子邮件并执行如下操作: • 检查哪一个域声称发送了该邮件并检查该域的 SPF 记录的 DNS。

邮件发送服务中: SPF,PTR(ip==>hostname反解)是最重要的2个规范需要遵循的,而与国内大邮箱服务商的合作还是需要一家一家谈白名单; • 确定发送服务器的 IP 地址是否与 SPF 记录中的某个已发布 IP 地址相匹配。 • 对电子邮件进行打分:如果 IP 地址匹配,则邮件通过身份验证并获得一个正分。如果 IP 地址不匹配,则邮件无法通过身份验证并获得一个负分。然后,对现有的防垃圾邮件筛选策略和启发式筛选应用这些结果。

如何给邮件服务器增加SPF设置,请参考chicheng的文章: 为你的mail server增加SPF记录

💬 历史评论

以下 8 条评论从旧版 Movable Type 博客迁移而来。 原始评论时间:2002–2016 年。

dimlau · 2007-05-22 15:21

我的貌似一般都不会被当成spam 可能是因为我用的smtp方式?

偷偷问一句 雅虎的ad比gad的收益高还是低?


leavic · 2007-05-22 15:43

大部分的都还好办,最麻烦的是有人留言时不留邮箱(我当初真不该这么惯着他们),结果MT就用我的gmail邮箱地址发送评论提醒,最后这类邮件全部被当成垃圾邮件处理。 我想还是强制要求评论时输入邮箱的好。


DavidYin · 2007-05-22 17:38

Gmail本身是没有SPF记录的,比如用Google App的Email系统,其实也是用的Gmail,它就是没有SPF的。


游小龙 · 2007-05-23 21:59

以前就老是收到垃圾邮件,不过我没有用gmail的邮箱。呵呵


bill · 2007-06-03 18:34

谢谢分享。


david · 2007-10-10 11:30

好像只添加一个mx记录和mail服务器还不行,要添加一个txt记录

如何增加SPF记录, {: @4 w. |3 @6 V! d 非常简单,在DNS里面添加TXT记录即可。登陆http://www.openspf.org/wizard.html 在里面输入你的域名,点击Begin,然后会自动得到你域名的一些相关信息。

Z/ _0 w% ?8 D! U’ ?a 你域名的A记录,一般选择yes,因为他有可能发出邮件。$ A. S% l6 Q% j$ Q. }) K

mx 一般也是yes,MX服务器会有退信等。& K- D; T4 _8 { ptr 选择no,官方建议的。0 V& a) C/ n- c9 P" I; n$ S

2 H2 H5 B5 {1 N* ia: 有没有其他的二级域名?比如:bbs.extmail.org和www不在一台server上,则填入bbs.extmail.org。否则清空。. O e9 W9 S) F8 v mx: 一般不会再有其他的mx记录了。 6 Y1 {0 ^3 e. ]1 o5 ]! ?2 p, d, V0 ]ip4: 你还有没有其他的ip发信?可能你的smtp服务器是独立出来的,那么就填入你的IP地址或者网段。$ U3 t) _1 R+ F3 M8 F include: 如果有可能通过一个isp来发信,这个有自己的SPF记录,则填入这个isp的域名,比如:sina.com 3 K" ^; v2 H" W9 s7 s3 k" G~all: 意思是除了上面的,其他的都不认可。当然是yes了。! { H2 j1 F6 E+ H / Y* l# S; L5 `* x: z! F- o 好了,点击Continue…… B6 o( J+ B2 }+ }# x |# y8 i 自动生成了一条SPF记录,比如extmail.org的是 . I1 J& J% w5 k E9 F" lv=spf1 a mx ~all S2 n( j5 K5 |7 R 并且在下面告诉你如何在你的bind里面添加一条 ! ]# u% G% c9 % v2 pextmail.org. IN TXT “v=spf1 a mx ~all” 3 O2 o1 h$ F& p: Q$ o, V( Y) Y$ ~6 w8 Y- _; @ 加入你的bind,然后ndc reload即可。

  • s) u+ d4 V, P# _3 _5 r检查一下:$ n" u# w& ?* H) n" Z7 Y!
    dig -t txt extmail.org

chifeng · 2007-10-11 17:44

多谢车东老大留言。。。


huamei · 2009-02-28 17:54

The original message was received at Mon, 16 Feb 2009 09:25:33 -0500 from web15808.mail.cnb.yahoo.com [202.165.102.88]

*** ATTENTION ***

Your e-mail is being returned to you because there was a problem with its delivery. The address which was undeliverable is listed in the section labeled: “—– The following addresses had permanent fatal errors —–”.

The reason your mail is being returned to you is listed in the section labeled: “—– Transcript of Session Follows —–”.

The line beginning with " (reason: 550 We would love to have gotten this email to maxwellblum@aim.com. But, your recipient never logged… super features offered by AIM Mail. And by the way, they’re also missing out on your email. Thanks.)

—– Transcript of session follows —– … while talking to air-me08.mail.aol.com.:

RCPT To: … User unknown这个要怎么办??