经过近一个多月前期准备和努力,公司的邮件服务器终于部署完成,部署和维护过程中遇到并解决了很多问题,在这里和大家一起探讨学习。


更换原因:老邮件服务器经常出现服务停止和当机,性能和稳定性已不能满足公司需求。

 
公司需求:准备采用统一的标准的带数据库的邮件系统,利于维护,性能稳定切相对安全。

 

最终选择了  Extmail   系统!

 

     Extmail 是一个以perl语言编写,面向大容量/ISP级应用,免费的高性能Webmail软件,主要包括ExtMail、Extman两个部分的程序套件。ExtMail套件用于提供从浏览器中登录、使用邮件系统的Web操作界面,而Extman套件用于提供从浏览器中管理邮件系统的Web操作界面。它以GPL版权释出,设计初衷是希望设计一个适应当前高速发展的IT应用环境,满足用户多变的需求,能快速进行开发、改进和升级,适应能力强的webmail系统。

对于国内的电子邮件系统来说,无论是从系统功能、易用性还是中文化等方面,ExtMail 平台都是一个相当不错的选择。Extmail 套件可以提供给普通邮件用户使用,而Extman套件可以提供给邮件系统的管理员使用。

Extmail还被设计成一个能够替代目前国内外一些主流webmail软件的系统,例如:SqWebMail,OpenWebmail及squirrel,Igenus等。

目前Extmail的主要特点集中如下:

支持Maildir,索引技术,速度超快 支持多国语言同屏显示,真正国际邮 支持巨型邮箱(超过1GB)海量文件 支持无限尺寸附件,I/O能力强 模板化,多语言,修改非常容易.

 

 
一 上期完成了修改配置批量添加用户功能,现在我们来看看/etc/postfix/main.cf

     默认main.cf 参数这里就不贴了,可以参考http://extmail.org/forum/viewthread.php?tid=650&highlight=main.cf  我主要写一些后期添加的功能。

1.防止垃圾邮件策略

Log 1

Apr 8 09:46:02 XXXXXXX postfix/smtpd[7696]: NOQUEUE: reject: RCPT from unknown[121.23.12.19]: 450 4.5.2 <kdufgmoc>: Helo command rejected: need fully-qualified hostname; from=<sjhyui@kdufgmoc> to=<XXXX@XXXX> proto=ESMTP helo=<kdufgmoc>

Log 2

Apr 8 08:49:30 ct166 postfix/smtpd[3601]: NOQUEUE: reject: RCPT from unknown[123.69.102.250]: 450 4.1.1 <XXXX@XXXX>: Recipient address rejected: User unknown in virtual mailbox table; from=<gdldlqtd@gsstock.com> to=<XXXX@XXXX> proto=ESMTP helo=<gsstock.com>

Log 3

Apr 8 09:52:02 ct166 postfix/smtpd[10142]: NOQUEUE: reject: RCPT from unknown[201.36.98.184]: 554 5.7.1 Service unavailable; Client host [201.36.98.184] blocked using sbl-xbl.spamhaus.org; http://www.spamhaus.org/query/bl?ip=201.36.98.184; from=<jessiehang@cm1.hinet.net> to=<XXXX@XXXX> proto=SMTP helo=<ip184.wb.com.br>

我们来分析下这些日志吧:

Log 1

垃圾邮件寄件者利用"fully-qualified hostname" 没有标准域名的主机特意发送垃圾邮件,他们修改了发送邮件的地址,利用postfix预设的"reject_non_fqdn_hostname" 特性把邮件跳转到sjhyui@kdufgmoc这个电邮地址里去,变了垃圾邮件由我的邮件服务器发出了。

不过这些技法十分容易解决:

non_fqdn_reject_code = 450 加入去postfix设定里去,这样就不发送回头的信件。

Log 2

垃圾邮件寄件者利用"User unknown" 没有邮件用户特意发送垃圾邮件,他们修改了发送邮件的地址,利用postfix预设的"User unknown" 特性把邮件跳转到gdldlqtd@gsstock.com这个电邮地址里去,变了垃圾邮件由我的邮件服务器发出了。

不过这些技法十分容易解决:

unknown_local_recipient_reject_code = 450
unknown_virtual_alias_reject_code = 450
unknown_virtual_mailbox_reject_code = 450

加入去postfix设定里去,这样就不发送回头的信件。

Log 3

垃圾邮件寄件者利用"rbl checking" 有问题的邮件服务器特意发送垃圾邮件,他们修改了发送邮件的地址,利用postfix预设的"rbl" 特性把邮件跳转到jessiehang@cm1.hinet.net这个电邮地址里去,变了垃圾邮件由我的邮件服务器发出了。

不过这些技法十分容易解决:

maps_rbl_reject_code = 450

加入去postfix设定里去,这样就不发送回头的信件。