因为某些原因,我的域名被各种广告机认为是企业域名,然后疯狂的给我群发各种代开发票偷税漏税的邮件。嗯,我就不说我真的不需要这些了。
由于更多的原因,我的邮箱是开启了“错误地址转发”功能的,也就是说如果给一个不存在的邮箱地址发送邮件,那么它会被投递到我的主邮箱中。方便我使用的同时也就导致了大量垃圾邮件的产生。
最近我频繁收到一些奇怪的退信,大致的意思就是我发到他们那边的邮件邮箱是不存在的。而我却压根没有发过那些邮件。检查了一下其中一封邮件,如下:
您好!您的邮件不能成功的递送到指定地址。这是一个永久的错误,因此不得不放弃继续递送。 <[email protected]>, the user's maildir is over the allowed quota (size : 105328857) --- Below this line is a copy of the message. Received: from SCWT-18.yinksoft.com ([115.63.10.56]) (envelope-sender <[email protected]>) by 192.168.16.101 with ESMTP for <[email protected]>; Sun, 05 May 2013 03:25:13 +0800 Date: Sun, 5 May 2013 03:25:16 +0800 Subject: Dz, From: " " <[email protected]> Reply-To: " " <[email protected]> To: <[email protected]> (以下省略)
很明显,我是不会有[email protected]这么一个邮箱的。看Received字段,有一个很神奇的域名:yinksoft.com。Google之,发现是一个垃圾邮件发送公司,鄙视。
稍微思考了一下,这封退信是这么到我的邮箱里面来的:这个叫yinksoft的公司(或者是它卖的软件)其中投递了一封邮件给[email protected]。而zengcheng这个倒霉鬼的邮箱早就被发爆掉了,所以chinalightsolar的邮件服务器就把这封邮件退回来了。那么退到哪里呢?好死不死的,这个yinksoft的发信软件把发件人地址填成了我域名下的邮箱wljgipl9400@best33.com。由于chinalightsolar是一个正规的邮件投递者,Gmail就没有把它当成垃圾邮件过滤,从而经过错误地址转发到达我的邮箱。
那么事情就很明显了,我的域名best33.com被盗用,盗用者伪装成我的域名下面的邮件地址给别人发送邮件。好吧,这种情况真够神奇的,由于SMTP的协议缺陷,这样做是完全没有问题的。那么要怎么解决呢?答案就是传说中的“SPF”记录了。
SPF记录的工作原理也很简单。把一条TXT记录加入到你域名下就能工作。工作的时候,接收邮件的服务器对你的DNS服务器进行查询,确认你的SPF记录,而后对SPF记录中记载的服务器进行查询,和收到邮件的IP地址比对就能确认这封邮件是不是你发送的。
由于SPF记录其实就是一条TXT记录,现在的主流解析商比如DNSPod都已经支持了。在@下的TXT记录下加入一句SPF记录就好了。我这里是Gmail的,其它邮箱的请查询你自己的提供商:
v=spf1 include:_spf.google.com ~all
只需这么一个记录就能将垃圾邮件阻挡在外啦~解析完成后可以自己dig查询一下:
$ dig best33.com txt ; <<>> DiG 9.9.2-P1 <<>> best33.com txt ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34100 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;best33.com. IN TXT ;; ANSWER SECTION: best33.com. 600 IN TXT "v=spf1 include:_spf.google.com ~all" ;; Query time: 102 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Fri May 10 13:47:00 2013 ;; MSG SIZE rcvd: 87
嗯,看起来毫无问题,尝试外发和收信都无压力,问题算是解决了。
我也开了错误地址转发,每天一大堆垃圾。郁闷
话说利用 Mail 函数可以伪装
伪装过不了spf,只要设了这个就伪装不了。
目前SPF倒是一种好手段,用来识别地址的真伪。不过SPF也有麻烦的地方,比如黑莓手机的邮件系统,都是通过黑莓网关代理发送的,还得额外添加配置。
我发现Gmail经常把一些带有链接的邮件当成垃圾邮件了。
腾讯企业邮在开通的时候有提醒设置spf记录的
大神,想请教一下,这边有个客户,在后台服务器没有查到发往qq的垃圾记录,检查这个客户已经设置SPF了,但是他收到qq发过来大量的主题含“自动回复”的邮件,这些邮件都由qq发出的SPF设置也是通过的,所以就搞不清楚为啥这些邮件会发到客户那边去了……
现在国内的主流邮箱提供商都支持 DMARC 了,设置 DMARC 配合 SPF 可能会更加有效;SPF 记录参考价值会不如 DMARC 那么高。