建立一套独立的邮件发送系统真的是一件非常繁琐的事情,以下为网上收集的关于建立邮件系统需要注意的点:
一、给服务器分配一个静态的IP地址,并且确保IP地址不在邮件黑名单中。
Spamhaus是目前世界上影响最大反垃圾邮件组织,只要被它列入黑名单,你的邮件服务器就算瘫痪了,因为据说全球80%以上的服 务器会拒收从你的邮件服务器发去邮件。他们提供四种类型XBL,SBL,PBL,ROKSO。国内有很多IP被列为了spamhaus这几类RBL当中。
Spamhaus维护的列表分类
- XBL(Exploits Block List):它是针对因为安全问题被劫持(比如僵尸机)或是蠕虫/病毒,带有内置式垃圾邮件引擎和其他类型的木马来发垃圾邮机器的实时黑名单IP列表。它的数据主要来源于两个合作组织:cbl.abuseat.org及www.njabl.org.因为被列入XBL的服务器大多为被第三方劫持利用,所以有可能导致误判断。
- SBL(The Spamhaus Block List):它是已经经过验证的垃圾邮件源及确有垃圾邮件发送行为的实时黑名单列表。它也是spamhaus最主要的项目之一,由分布在全世界9个国家的,每周7天,每天24小时进行列入新记录和删除记录的工作。所以,这个列表可信度高使用人数也多。如果你被列入算是严重事件,被列入后,需要你的ISP(电信或是网通)的IP管理人员去和Spamhaus联系才有可能移除。
- PBL(The Policy Block List):它主要是包含动态IP及哪些允许未经验证即可发送邮件的SMTP服务器的IP地址段。这一个列表最明显的特点就是提供了一个IP地址移除的自助服务,IP它列入后,可以自己申请移除。所以就算是被PBL列入,影响并不大,请要使用移除功能移除即可。
- ZEN:是上面三个的合集,即包括上面XBL,SBL,PBL的数据。
- DBL:(The Domain Block List):它是针对因垃圾邮件源而建立的基于域名的黑名单列表。
- ROKSO(The Register of Known Spam Operations):这个最严重了。字面上就可以理解了进了这个数据库的人物都是有确切的证据证明垃圾邮件行为。属于专业的发送垃圾邮件的组织或是个人。spamhaus认为全世界80%的垃圾邮件来自于这个数据库中的成员发出。
Spamhaus的工作原理
如何向SPAMHAUS申请RBL解禁
- 登录http://www.spamhaus.org/pbl/index.lasso,在红框中输入企业电子邮件服务器MX记录地址;
- 如果不幸列入RBL黑名单,点击下方“RBLxxxx”链接,申请撤销指控;
- 看过一大篇英文温馨提示信息后,单击“remove an IP from RPBL”;
- 注意提示“turn on smtp authentication”,请应复查你的邮件服务器中继和权限是否设置严谨
- 输入请求释放的邮件服务器ip地址,接收确认信的电子邮件地址(注意一定要可以正常收到邮件,因为它将收到5位数的验证码)及验证码,国家信息以及验证码;
- 注意查收上述填入的电子邮件,大约5分钟内会收到一封来自RBL的确认信,找到其中的确认码;
- 正确填入电子邮件中的确认码后,即可等待解禁,spamhaus提示大约30分钟左
- Spamhaus的处理速度很快,大约15分钟后,就被从黑名单中释放了。
从RBL黑名单中释放后,很多国外邮件服务器就不会拒绝你了。但这并非一劳永逸,如果你的邮件服务器因你的保护不周,被垃圾邮件发送者用来大量发送垃圾邮件,或者你的邮件服务器公网地址段充斥着垃圾邮件服务器,那么你还会被列入RBL黑名单。 以下是用来查询您的IP是否被列入黑名单以及将您的IP从黑名单移除的地址链接:
- http://www.spamhaus.org/lookup.lasso (输入服务器IP查询即可,绿色字样表示正常,红色则需要相应的解封操作了。)
- http://cbl.abuseat.org/lookup.cgi (输入IP,如果显示not listed则正常,否则请使用页面最下方的removal链接移除。)
- http://rbls.org (输入您的IP,将会遍历常见的数十个列表,检查您的IP在这些列表中的状态。)
二、为域名做反向解析
在垃圾邮件泛滥的今天,垃圾邮件给我们的生活、工作、学习带来了极大的危害。由于SMTP服务器之间缺乏有效的发送认证机制,即使采用了垃圾邮件识别阻拦技术效果仍旧一般,再者垃圾邮件识别阻拦技术主要是在收到信件后根据一定条件进行识别的,需要耗费大量服务器资源,如果能在信件到达服务器之前就采取一定手段,这样就能大大提高服务器效率了。因此,目前许多邮件服务器如sina.com,hotmail.com,yahoo.com.cn等等都采用了垃圾邮件识别阻拦技术+IP反向解析验证技术以更好的阻拦垃圾邮件。
我们先来了解一下什么是IP反向解析。其实作过DNS服务器的朋友一定会知道DNS服务器里有两个区域,即“正向查找区域”和“反向查找区域”,反向查找区域即是这里所说的IP反向解析,它的作用就是通过查询IP地址的PTR记录来得到该IP地址指向的域名,当然,要成功得到域名就必需要有该IP地址的PTR记录。
由于在域名系统中,一个IP地址可以对应多个域名,因此从IP出发去找域名,理论上应该遍历整个域名树,但这在Internet上是不现实的。为了完成逆向域名解析,系统提供一个特别域,该特别域称为逆向解析域in-addr.arpa。这样欲解析的IP地址就会被表达成一种像域名一样的可显示串形式,后缀以逆向解析域域名”in-addr.arpa”结尾。例如一个IP地址:66.40.65.49,其逆向域名表达方式为:49.65.40.66.in-addr.arpa。两种表达方式中IP地址部分顺序恰好相反,因为域名结构是自底向上(从子域到域),而IP地址结构是自顶向下(从网络到主机)的。实质上逆向域名解析是将IP地址表达成一个域名,以地址做为索引的域名空间,这样逆向解析的很大部分可以纳入正向解析中。
查看反向解析信息:
命令行输入nslookup -qt=ptr yourIP,从返回的信息中您可以看到反向解析的结果,或者在这个网站查询。
如何做反向解析:
首先要有固定公网IP地址、可用域名(最好不要被其它服务所用),例如您有lunch-time.com的域名,您可以要求您的域名注册商为您添加一个okmail.lunch-time.com的域名并将其A记录指向您的SMTP服务器出口公网IP地址,如:220.112.20.18,接着请与您的固定IP所属ISP联系要求为您的IP反向解析至okmail.lunch-time.com。完成后别忘了将您的SMTP服务器的HELO域名改为okmail.lunch-time.com,这样才可以达到目的。
- 目前很多网络服务提供商要求访问的IP地址具有反向域名解析的结果,否则不提供Mail服务。
- 一定要有固定公网IP地址以及真实可用域名。同时要注意反向解析的域名的A记录一定要指向该IP。
- 对于有多个固定公网IP地址的,只要做主要出口IP的反向解析即可,不管您有多少SMTP服务器,只要是通过该IP连接至外网就将这些SMTP服务器的HELO域名改成IP反向解析之域名即可。
三、设置域名SPF
有些用户自己搭建服务器,并且联系ISP设置了域名反向解析,仍遇到垃圾邮件比率偏高的问题,这时候需要进一步设置SPF,主要的操作就是给对应的域名增加一个TXT记录。
SPF就是Sender Policy Framework。SPF可以防止别人伪造你来发邮件,是一个反伪造性邮件的解决方案。当你定义了你的domain name的SPF记录之后,接收邮件方会根据你的SPF记录来确定连接过来的IP地址是否被包含在SPF记录里面,如果在,则认为是一封正确的邮件,否则则认为是一封伪造的邮件。关于更详细的信息请参考RFC4408(http://www.ietf.org/rfc/rfc4408.txt)
SPF记录有什么用?
SPF是为了防范垃圾邮件而提出来的一种DNS记录类型,它是一种TXT类型的记录,它用于登记某个域名拥有的用来外发邮件的所有IP地址。例如: dig TXT domain.comdomain.com. 27970 IN TXT “v=spf1 ip4:218.16.118.186 -all”
按照SPF的格式在DNS记录中增加一条TXT类型的记录,将提高该域名的信誉度,同时可以防止垃圾邮件伪造该域的发件人发送垃圾邮件。
SPF是跟DNS相关的一项技术,它的内容写在DNS的txt类型的记录里面。mx记录的作用是给寄信者指明某个域名的邮件服务器有哪些。SPF的作用跟mx相反,它向收信者表明,哪些邮件服务器是经过某个域名认可会发送邮件的。
由定义可以看出,SPF的作用主要是反垃圾邮件,主要针对那些发信人伪造域名的垃圾邮件……
如何查询SPF记录?
当前市场上很多邮件系统和供应商都已经开始支持SPF,比如163.com,那么该如何得到163.com的SPF值呢?在CMD环境中,键入:
nslookup set type=txt 163.com就会得到以下的结果:
163.com text =“v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all”
163.com nameserver = ns3.nease.net163.com nameserver = ns.nease.netns.nease.net internet address = 202.106.185.75ns3.nease.net internet address = 220.181.28.3其中:“v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all”就是163.com的SPF值。
这个数据中说明了163.com有效合法服务器都有哪些!
如何增加SPF记录
非常简单,在DNS里面添加TXT记录即可。登陆 http://www.openspf.org/ 在里面输入你的域名,点击Begin,然后会自动得到你域名的一些相关信息。
- a 你域名的A记录,一般选择yes,因为他有可能发出邮件。
- mx 一般也是yes,MX服务器会有退信等。
- ptr 选择no,官方建议的。
- a: 有没有其他的二级域名?比如:mail.abc.com和www不在一台server上,则填入mail.abc.com。否则清空。
- mx: 一般不会再有其他的mx记录了。
- ip4: 你还有没有其他的ip地址发信?可能你的smtp服务器是独立出来的,那么就填入你的IP地址或者网段。
- include: 如果有可能通过一个isp来发信,这个有自己的SPF记录,则填入这个isp的域名,比如:hichina.com
- ~all: 意思是除了上面的,其他的都不认可。当然是yes了。
好了,点击Continue…..自动生成了一条SPF记录,比如abc.com的是v=spf1 a mx ~all
并且在下面告诉你如何在你的bind里面添加一条abc.com. IN TXT “v=spf1 a mx ~all”
加入你的bind,然后ndc reload即可。检查一下:dig -t txt extmail.org
如果您的域名是由万网的dns服务器进行解析的,万网的网页上没有设置TXT记录的地方,但是如果你的DNS主server是在Hichina的,可以在diy.hichina.com上设置。设置完毕后您即可以通过使用spf策略进行垃圾邮件验证了。
SPF 的 TXT 记录SPF 记录包含在一个 TXT 记录之中,格式如下:v=spf1 [[pre] type [ext] ] … [mod]
看着不过瘾,好像没写完整了。
原文地址:http://www.biaodianfu.com/how-to-build-a-mail-delivery-system.html
原创文章,作者:jessegold,如若转载,请注明出处:https://www.hero4u.cn/blog/2012/08/how-to-build-a-mail-delivery-system/