来源:www.5dmail.net
ZMailer是
![](/icons/92037yi.gif)
个高性能、多进程
![](/icons/92037de.gif)
Unix系统邮件
![](/icons/92037chengxu.gif)
![](/icons/92037dou2.gif)
其可以从下面
![](/icons/92037de.gif)
服务器ftp://ftp.funet.fi/pub/unix/mail/zmailer/自由下载
![](/icons/92037dou2.gif)
其也是按照单块模式设计
![](/icons/92037de.gif)
![](/icons/92037dou2.gif)
如Hotmail等邮件系统就是用Zmailer构建
![](/icons/92037de.gif)
Exim是由Cambridge 大学开发
![](/icons/92037de.gif)
遵从GPL
![](/icons/92037de.gif)
MTA
![](/icons/92037dou.gif)
其风格上类似和Smail 3
![](/icons/92037dou.gif)
但是比Smail3更加完善
![](/icons/92037dou2.gif)
当前最新版本是3.15
![](/icons/92037dou2.gif)
其主站点为http://www.exim.org/
![](/icons/92037dou2.gif)
其最大
![](/icons/92037de.gif)
特点就是配置简单性
![](/icons/92037dou.gif)
但是其安全性不如Qmail及Postfix
下面是对几种MTA
![](/icons/92037de.gif)
特点
![](/icons/92037de.gif)
比较
![](/icons/92037dou.gif)
综合
![](/icons/92037de.gif)
来讲
![](/icons/92037dou.gif)
Qmail和Postfix都是很不错
![](/icons/92037de.gif)
MTA,选择
![](/icons/92037de.gif)
标准往往是个人
![](/icons/92037de.gif)
喜好问题
![](/icons/92037dou.gif)
Postfix发展历史 要比Qmail迟
![](/icons/92037yi.gif)
些
![](/icons/92037dou2.gif)
当然除了这里介绍
![](/icons/92037de.gif)
几种MTA以外
![](/icons/92037dou.gif)
还有 Smail, Post.Office, the Sun Internet Mail Server (SIMS), MMDF, CommuniGate, PMDF, Netscape Messaging Server,Obtuse smtpd/smtpfwdd,Intermail,MD Switch等其他商业或者免费
![](/icons/92037de.gif)
MTA可以选择
相关链接资源
Postfix: http://www.postfix.org/
Zmailer:http://www.zmailer.org/ (GPL)
Qmail :http://www.qmail.org/ (license is unclear)
Sendmail :http://www.sendmail.org/ (GPL)
Linux邮件服务器软件Software比较QmailQmail是DanBernstein开发
![](/icons/92037de.gif)
可以自由下载
![](/icons/92037de.gif)
MTA
![](/icons/92037dou.gif)
其第
![](/icons/92037yi.gif)
个beta版本0.7发布于1996年1月24日
![](/icons/92037dou.gif)
1997年2月发布了 1.0版
![](/icons/92037dou.gif)
当前版本是1.03
1.Qmail
![](/icons/92037de.gif)
特点
安全性:为了验证Qmail
![](/icons/92037de.gif)
安全性
![](/icons/92037dou.gif)
Qmail
![](/icons/92037de.gif)
支持者甚至出资$1000悬赏寻找 Qmail
![](/icons/92037de.gif)
安全漏洞
![](/icons/92037dou.gif)
![](/icons/92037yi.gif)
年以后
![](/icons/92037dou.gif)
该奖金没有被领取
![](/icons/92037dou.gif)
而被捐献给自由软件Software基金会
![](/icons/92037dou2.gif)
目前
![](/icons/92037dou.gif)
Qmail
![](/icons/92037de.gif)
作者也出资$500来寻求Qmail
![](/icons/92037de.gif)
安全漏洞
速度:Qmail在
![](/icons/92037yi.gif)
个中等规模
![](/icons/92037de.gif)
系统可以投递大约百万封邮件
![](/icons/92037dou.gif)
甚至在
![](/icons/92037yi.gif)
台486
![](/icons/92037yi.gif)
天上能处理超过10万封邮件
![](/icons/92037dou.gif)
起支持并行投递
![](/icons/92037dou2.gif)
Qmail支持邮件
![](/icons/92037de.gif)
并行投递
![](/icons/92037dou.gif)
同时可以投递大约20封邮件
![](/icons/92037dou2.gif)
目前邮件投递
![](/icons/92037de.gif)
瓶颈在于SMTP协议
![](/icons/92037dou.gif)
通过STMP向另外
![](/icons/92037yi.gif)
台互联网主机投递
![](/icons/92037yi.gif)
封电子邮件大约需要花费10多秒钟
![](/icons/92037dou2.gif)
Qmail
![](/icons/92037de.gif)
作者 提出了QMTP(Quick Mail Transfer Protocol)来加速邮件
![](/icons/92037de.gif)
投递
![](/icons/92037dou.gif)
并且在Qmail中得到支持
![](/icons/92037dou2.gif)
Qmail
![](/icons/92037de.gif)
设计目标是在
![](/icons/92037yi.gif)
台16M
![](/icons/92037de.gif)
机器上最终达到每天可以投递大约百万级数目
![](/icons/92037de.gif)
邮件
可靠性:为了保证可靠性
![](/icons/92037dou.gif)
Qmail只有在邮件被正确地写入到磁盘才返回处理成功
![](/icons/92037de.gif)
结果
![](/icons/92037dou.gif)
这样即使在磁盘写入中发生系统崩溃或断电等情况
![](/icons/92037dou.gif)
也可以保 证邮件不被丢失
![](/icons/92037dou.gif)
而是重新投递
特别简单
![](/icons/92037de.gif)
虚拟域管理:甚至有
![](/icons/92037yi.gif)
个第 3方开发
![](/icons/92037de.gif)
称为vchkpw
![](/icons/92037de.gif)
add-on来支持虚拟POP域
![](/icons/92037dou2.gif)
使用这个软件Software包
![](/icons/92037dou.gif)
POP3用户不需要具有系统
![](/icons/92037de.gif)
正式帐户
使用ezmlm支持用户自控制
![](/icons/92037de.gif)
邮件列表功能
邮件用户和系统帐户隔离
![](/icons/92037dou.gif)
为用户提供邮件帐户不需要为其设置系统帐户
![](/icons/92037dou.gif)
从而增加了安全性
2.Sendmail vs Qmail
首先:sendmail是发展历史悠久
![](/icons/92037de.gif)
MTA
![](/icons/92037dou.gif)
当前
![](/icons/92037de.gif)
版本是8.10.2
![](/icons/92037dou2.gif)
当然
![](/icons/92037dou.gif)
Sendmail在可移植性、稳定性及确保没有bug方面有
![](/icons/92037yi.gif)
定
![](/icons/92037de.gif)
保证
![](/icons/92037dou2.gif)
但是Internet上有很多帖子都是有关如果攻击Sendmail
![](/icons/92037dou.gif)
这对于管理员来说是
![](/icons/92037yi.gif)
个噩梦
![](/icons/92037dou2.gif)
Sendmail在发展过程中产生了
![](/icons/92037yi.gif)
批经验丰富
![](/icons/92037de.gif)
Sendmail管理员
![](/icons/92037dou.gif)
并且 Sendmail有大量完整
![](/icons/92037de.gif)
文档资料
![](/icons/92037dou.gif)
除了 Sendmail
![](/icons/92037de.gif)
宝典: OReillys sendmail book written by Bryan Costales with Eric Allman以外
![](/icons/92037dou.gif)
网络上有大量
![](/icons/92037de.gif)
tutorial、FAQ和其他
![](/icons/92037de.gif)
资源
![](/icons/92037dou2.gif)
这些大量
![](/icons/92037de.gif)
文档对于很好
![](/icons/92037de.gif)
利用Sendmail
![](/icons/92037de.gif)
各种特色功能是非常重 要
![](/icons/92037de.gif)
![](/icons/92037dou2.gif)
但是Sendmai当前来说是
![](/icons/92037yi.gif)
个成熟
![](/icons/92037de.gif)
MTA
当然
![](/icons/92037dou.gif)
Sendmail具有
![](/icons/92037yi.gif)
些缺点
![](/icons/92037dou.gif)
其特色功能过多而导致配置文件
![](/icons/92037de.gif)
复杂性
![](/icons/92037dou2.gif)
当然
![](/icons/92037dou.gif)
通过使用m4宏使配置文件
![](/icons/92037de.gif)
生成变
![](/icons/92037de.gif)
容易很多
![](/icons/92037dou2.gif)
但是
![](/icons/92037dou.gif)
要掌握所有
![](/icons/92037de.gif)
配置选项是
![](/icons/92037yi.gif)
个很不容易
![](/icons/92037de.gif)
事情
![](/icons/92037dou2.gif)
Sendmail在过去
![](/icons/92037de.gif)
版本中出现过很多安全漏洞
![](/icons/92037dou.gif)
所以使管理员不得不赶快升级版本
![](/icons/92037dou2.gif)
而且Sendmail
![](/icons/92037de.gif)
流行性也使其成为攻击
![](/icons/92037de.gif)
目标
![](/icons/92037dou.gif)
这有好处也有坏处:这意味着安全漏洞可以很快地被发现
![](/icons/92037dou.gif)
但是同样使Sendmail更加稳定和安全
![](/icons/92037dou2.gif)
另外
![](/icons/92037yi.gif)
个问题是 Sendmail
![](/icons/92037yi.gif)
般缺省配置都是具有最小
![](/icons/92037de.gif)
安全特性
![](/icons/92037dou.gif)
从而使Sendmail往往容易被攻 击
![](/icons/92037dou2.gif)
如果使用Sendmail
![](/icons/92037dou.gif)
应该确保明白每个打开
![](/icons/92037de.gif)
选项
![](/icons/92037de.gif)
含义和影响
![](/icons/92037dou2.gif)
![](/icons/92037yi.gif)
旦你理解了Sendmail
![](/icons/92037de.gif)
工作原理
![](/icons/92037dou.gif)
就Sendmail
![](/icons/92037de.gif)
安装和维护就变
![](/icons/92037de.gif)
非常容易了
![](/icons/92037dou2.gif)
通过Sendmail
![](/icons/92037de.gif)
配置文件
![](/icons/92037dou.gif)
用户实现完成
![](/icons/92037yi.gif)
切可以想象得到
![](/icons/92037de.gif)
需求
Qmail是
![](/icons/92037yi.gif)
个选择
![](/icons/92037dou.gif)
其在设计实现中特别考虑了安全问题
![](/icons/92037dou2.gif)
如果你需要
![](/icons/92037yi.gif)
个快速
![](/icons/92037de.gif)
解决方案如
![](/icons/92037dou.gif)
![](/icons/92037yi.gif)
个安全
![](/icons/92037de.gif)
邮件网关
![](/icons/92037dou.gif)
则Qmail是
![](/icons/92037yi.gif)
个很好
![](/icons/92037de.gif)
选择
![](/icons/92037dou2.gif)
Qmail和Sendmail
![](/icons/92037de.gif)
配置文件完全区别
![](/icons/92037dou2.gif)
而对于Qmail
![](/icons/92037dou.gif)
其有自己
![](/icons/92037de.gif)
配置文件
![](/icons/92037dou.gif)
配置目录中包含了5-30个区别
![](/icons/92037de.gif)
文件
![](/icons/92037dou.gif)
各个文件实现对区别部分
![](/icons/92037de.gif)
配置(如虚拟域或虚拟主机等)
![](/icons/92037dou2.gif)
这些配置介绍说明都 在man中有很好
![](/icons/92037de.gif)
文档
![](/icons/92037dou.gif)
但是Qmail
![](/icons/92037de.gif)
代码结构不是很好
Qmail要比Sendmail小很多
![](/icons/92037dou.gif)
其缺乏
![](/icons/92037yi.gif)
些现今邮件服务器所具有
![](/icons/92037de.gif)
特色功能
![](/icons/92037dou2.gif)
如不象Sendmail
![](/icons/92037dou.gif)
qmail不对邮件信封
![](/icons/92037de.gif)
发送者
![](/icons/92037de.gif)
域名进行验证
![](/icons/92037dou.gif)
以确保域名
![](/icons/92037de.gif)
正确性
![](/icons/92037dou2.gif)
自身不提供对RBL
![](/icons/92037de.gif)
支持
![](/icons/92037dou.gif)
而需要add-on来实现
![](/icons/92037dou2.gif)
![](/icons/92037dou.gif)
而Sendmail支持RBL
![](/icons/92037dou2.gif)
同样Qmail不能拒绝接收目
![](/icons/92037de.gif)
接收人不存在信件
![](/icons/92037dou.gif)
而是先将邮件接收下来
![](/icons/92037dou.gif)
然后返回查无此用户
![](/icons/92037de.gif)
![](/icons/92037de.gif)
邮件
![](/icons/92037dou2.gif)
Qmail最大
![](/icons/92037de.gif)
问题就出在发送邮件给多个接收者
![](/icons/92037de.gif)
处理上
![](/icons/92037dou2.gif)
若发送
![](/icons/92037yi.gif)
个很大
![](/icons/92037de.gif)
邮件给同
![](/icons/92037yi.gif)
个域中
![](/icons/92037de.gif)
多个用户
![](/icons/92037dou.gif)
Sendmail将只向目
![](/icons/92037de.gif)
邮件服务器发送
![](/icons/92037yi.gif)
个邮件拷贝
![](/icons/92037dou2.gif)
而 Qmail将并行地连接多次
![](/icons/92037dou.gif)
每次都发送
![](/icons/92037yi.gif)
个拷贝给
![](/icons/92037yi.gif)
个用户
![](/icons/92037dou2.gif)
若用户日常要发送大邮件给多个用户
![](/icons/92037dou.gif)
使用Qmail将浪费很多带宽
![](/icons/92037dou2.gif)
可以这么认为:Sendmail优化节省带宽资源
![](/icons/92037dou.gif)
Qmail优化节省时间
![](/icons/92037dou2.gif)
若用户系统有很好
![](/icons/92037de.gif)
带宽
![](/icons/92037dou.gif)
Qmail将具有更好
![](/icons/92037de.gif)
性能
![](/icons/92037dou.gif)
而如果用户系统
![](/icons/92037de.gif)
带宽资源有限
![](/icons/92037dou.gif)
并且要发送很多邮件列表信息
![](/icons/92037dou.gif)
则Sendmail效率更高
![](/icons/92037yi.gif)
些
![](/icons/92037dou2.gif)
Qmail不支持.forward(.forward在很多情况下对用户很有用处);不使用/var/spool/mail
![](/icons/92037dou.gif)
而是将邮件存放在用户home目录
![](/icons/92037dou2.gif)
下面是
![](/icons/92037yi.gif)
些使用Qmail不容易完成
![](/icons/92037de.gif)
工作
![](/icons/92037dou.gif)
要使用Qmail完成这些工作
![](/icons/92037dou.gif)
可能需要用户自己 动手实现或者使用第 3方提供
![](/icons/92037de.gif)
不够可靠
![](/icons/92037de.gif)
模块
Qmail
![](/icons/92037de.gif)
源代码相对于Sendmail来说要更加容易理解
![](/icons/92037dou.gif)
这对于希望深入到内 部了解MTA机制
![](/icons/92037de.gif)
人员来说是
![](/icons/92037yi.gif)
个优点
![](/icons/92037dou2.gif)
Qmail在安全性方面也要稳定
![](/icons/92037yi.gif)
些
![](/icons/92037dou2.gif)
Qmail有很好
![](/icons/92037de.gif)
技术支持
![](/icons/92037dou.gif)
但是没有象Sendmail那样被广泛地应用和大量
![](/icons/92037de.gif)
管理员用户群
![](/icons/92037dou2.gif)
Qmail
![](/icons/92037de.gif)
安装不象Sendmail那样自动化
![](/icons/92037dou.gif)
需要手工步骤
![](/icons/92037dou2.gif)
而且 Qmail
![](/icons/92037de.gif)
文档不如Sendmail那样完整和丰富
Qmail
![](/icons/92037de.gif)
add-ons比Sendmail要少
![](/icons/92037yi.gif)
些
![](/icons/92037dou2.gif)
![](/icons/92037yi.gif)
般来说对于经验稍微少
![](/icons/92037yi.gif)
些
![](/icons/92037de.gif)
管理员
![](/icons/92037dou.gif)
选择Qmail相对要好
![](/icons/92037yi.gif)
些
![](/icons/92037dou2.gif)
Qmail要简单
![](/icons/92037yi.gif)
些
![](/icons/92037dou.gif)
而且其特色功能能满足
![](/icons/92037yi.gif)
般用户
![](/icons/92037de.gif)
需求
![](/icons/92037dou2.gif)
Sendmail类似于office套件
![](/icons/92037dou.gif)
80%
![](/icons/92037de.gif)
功能往往都不被使用
![](/icons/92037dou2.gif)
这就使Qmail在
![](/icons/92037yi.gif)
些场合可能被更受欢迎
![](/icons/92037yi.gif)
些
![](/icons/92037dou.gif)
其具有
![](/icons/92037yi.gif)
些Sendmail所没有
![](/icons/92037de.gif)
更流行和实用
![](/icons/92037de.gif)
特色功能
![](/icons/92037dou.gif)
如:Qmail具有内置
![](/icons/92037de.gif)
pop3支持
![](/icons/92037dou2.gif)
Qmail同样支持如主机或用户
![](/icons/92037de.gif)
伪装、虚拟域等等
![](/icons/92037dou2.gif)
Qmail
![](/icons/92037de.gif)
简单性也 使配置相对容易
![](/icons/92037yi.gif)
些
Qmail被认为相对于Sendmail更加安全和高效
![](/icons/92037dou.gif)
运行 Qmail
![](/icons/92037de.gif)
![](/icons/92037yi.gif)
台pentium机器
![](/icons/92037yi.gif)
天可以处理大约 200,0000条消息
Qmail相对于其他
![](/icons/92037de.gif)
MTA要简单很多
![](/icons/92037dou.gif)
主要体现在:
(1)其他
![](/icons/92037de.gif)
MTA
![](/icons/92037de.gif)
邮件转发、邮件别名和邮件列表都是采用相互独立
![](/icons/92037de.gif)
机制
![](/icons/92037dou.gif)
而Qmail采用
![](/icons/92037yi.gif)
种简单
![](/icons/92037de.gif)
转发(forwarding)机制来允许用户处理自己
![](/icons/92037de.gif)
邮件列表
(2)其他
![](/icons/92037de.gif)
MTA都提供快速而不安全
![](/icons/92037de.gif)
方式及慢
![](/icons/92037de.gif)
队列方式
![](/icons/92037de.gif)
邮件投递机制;而Qmail发送是由新邮件
![](/icons/92037de.gif)
出现而触发
![](/icons/92037de.gif)
![](/icons/92037dou.gif)
所以其投递只有
![](/icons/92037yi.gif)
种模式:快速
![](/icons/92037de.gif)
队列方式
(3)其他
![](/icons/92037de.gif)
MTA实际上包括
![](/icons/92037yi.gif)
个特定版本
![](/icons/92037de.gif)
inetd来监控MTA
![](/icons/92037de.gif)
平均负载
![](/icons/92037dou.gif)
而qmail 设计了内部机制来限制系统负载
![](/icons/92037dou.gif)
所以qmail-smtpd 能安全地从系统
![](/icons/92037de.gif)
inet来 运行sendmail有很多
![](/icons/92037de.gif)
商业支持
![](/icons/92037dou.gif)
而且由于大量
![](/icons/92037de.gif)
用户群
![](/icons/92037dou.gif)
在互联网上有大量
![](/icons/92037de.gif)
潜在技术支持
![](/icons/92037dou2.gif)
而Qmail只有很有限
![](/icons/92037de.gif)
技术支持
![](/icons/92037dou2.gif)
有家公司
![](/icons/92037int.gif)
er7.com提供对Qmail
![](/icons/92037de.gif)
支持
![](/icons/92037dou.gif)
该公司同样提供了免费
![](/icons/92037de.gif)
add-ons
![](/icons/92037dou.gif)
包括
![](/icons/92037yi.gif)
个基于web
![](/icons/92037de.gif)
管理工具-QmailAdmin及
![](/icons/92037yi.gif)
个通过vpopmail
![](/icons/92037de.gif)
对虚拟域
![](/icons/92037de.gif)
支持
![](/icons/92037dou.gif)
甚至具有
![](/icons/92037yi.gif)
个基于web
![](/icons/92037de.gif)
客户借接口— SqWebMail
Qmail还具有
![](/icons/92037yi.gif)
些其他
![](/icons/92037de.gif)
缺憾
![](/icons/92037dou2.gif)
如它不是完全遵从标准
![](/icons/92037dou.gif)
它不支持DSN
![](/icons/92037dou.gif)
作者认为DSN是
![](/icons/92037yi.gif)
个即将消亡
![](/icons/92037de.gif)
技术
![](/icons/92037dou.gif)
而Qmail
![](/icons/92037de.gif)
VERP可以完成同样
![](/icons/92037de.gif)
工作
![](/icons/92037dou.gif)
而又不象DSN依赖于其他主机
![](/icons/92037de.gif)
支持
![](/icons/92037dou2.gif)
Qmail另外
![](/icons/92037yi.gif)
个问题是其不遵从支持7bit系统标准
![](/icons/92037dou.gif)
而每次都发送8bit
![](/icons/92037dou2.gif)
若邮件接收
![](/icons/92037yi.gif)
方不能处理这种情况
![](/icons/92037dou.gif)
就会出现邮件乱码
![](/icons/92037de.gif)
情况
从安全性来讲
![](/icons/92037dou.gif)
Sendmail要比Qmail差
![](/icons/92037yi.gif)
些
![](/icons/92037dou.gif)
Sendmail在发展中出现过很多很著名
![](/icons/92037de.gif)
安全漏洞;而Qmail相对要短小精悍
![](/icons/92037dou.gif)
但是仍然提供了基本
![](/icons/92037de.gif)
STMP功能
![](/icons/92037dou2.gif)
而Qmail
![](/icons/92037de.gif)
代码注释要少
![](/icons/92037yi.gif)
些
![](/icons/92037dou2.gif)
Qmail
![](/icons/92037de.gif)
![](/icons/92037yi.gif)
个很好
![](/icons/92037de.gif)
特色是其支持
![](/icons/92037yi.gif)
种可选
![](/icons/92037de.gif)
基于目录
![](/icons/92037de.gif)
邮件存储格式
![](/icons/92037dou.gif)
而不是使用
![](/icons/92037yi.gif)
个很大
![](/icons/92037de.gif)
文件来存储用户所有
![](/icons/92037de.gif)
邮件
![](/icons/92037dou2.gif)
若用户
![](/icons/92037de.gif)
邮件服务器进行很多
![](/icons/92037de.gif)
POP3服务
![](/icons/92037dou.gif)
则这种邮件存储格式可以提高效率
![](/icons/92037dou2.gif)
但是遗憾
![](/icons/92037de.gif)
是Pine自身并不支持 这种存储格式
![](/icons/92037dou.gif)
如果需要可以使用
![](/icons/92037yi.gif)
些补丁来达到这个目
![](/icons/92037de.gif)
Qmail
![](/icons/92037de.gif)
优点是:每个用户都可以创建邮件列表而无须具有根用户
![](/icons/92037de.gif)
权限
![](/icons/92037dou.gif)
如用户"foo"可以创建名为foo-slashdot,foo-linux,foo-chickens
![](/icons/92037de.gif)
邮件列表
![](/icons/92037dou.gif)
为了提供更好
![](/icons/92037de.gif)
功能
![](/icons/92037dou.gif)
有
![](/icons/92037yi.gif)
个叫 ezmlm(EZ Mailing List Maker)
![](/icons/92037de.gif)
工具可以支持自动注册和注销、索引等Majordomo所具有
![](/icons/92037de.gif)
各种功能
![](/icons/92037dou.gif)
但是都是CLI驱动
![](/icons/92037de.gif)
![](/icons/92037dou.gif)
只需要编辑很少
![](/icons/92037de.gif)
文件
![](/icons/92037dou2.gif)
Qmail非常适合在小型系统下工作
![](/icons/92037dou.gif)
![](/icons/92037yi.gif)
般只支持较少
![](/icons/92037de.gif)
用户或用来管理邮件列表
![](/icons/92037dou2.gif)
Qmail速度快并且简单:Qmail是当你希望安全切容易配置
![](/icons/92037de.gif)
最佳
![](/icons/92037de.gif)
选择;Qmail可以在2个小时内搞定配置
![](/icons/92037dou.gif)
而Sendmail可能在两天内都搞不定
rocketmail
![](/icons/92037int.gif)
ernic 等都使用Qmail来构建
Linux邮件服务器软件Software比较Postfix
几年以前
![](/icons/92037dou.gif)
Linux环境下可以选择
![](/icons/92037de.gif)
可以免费邮件服务器软件Software只有Sendmail
![](/icons/92037dou.gif)
但是由于Sendmail
![](/icons/92037de.gif)
缺陷
![](/icons/92037dou.gif)
![](/icons/92037yi.gif)
些开发者先后开发了若干种其他
![](/icons/92037de.gif)
邮件服务器软件Software
![](/icons/92037dou2.gif)
当前
![](/icons/92037dou.gif)
运行在Linux环境下免费
![](/icons/92037de.gif)
邮件服务器
![](/icons/92037dou.gif)
或者称为MTA(Mail Transfer Agent)有若干种选择
![](/icons/92037dou.gif)
比较常见
![](/icons/92037de.gif)
有Sendmail、Qmail、Postfix、exim及Zmailer等等
![](/icons/92037dou2.gif)
本文希望通过对几种影响相对来说比较大
![](/icons/92037de.gif)
主流Linux环境下
![](/icons/92037de.gif)
MTA
![](/icons/92037de.gif)
特点进行阐述
![](/icons/92037dou.gif)
并对其优缺点
![](/icons/92037yi.gif)
![](/icons/92037yi.gif)
分析比较
![](/icons/92037dou.gif)
使用户在选择Linux 环境下
![](/icons/92037de.gif)
免费MTA时有
![](/icons/92037yi.gif)
个选择
![](/icons/92037de.gif)
依据
![](/icons/92037yi.gif)
、Postfix
Postfix是
![](/icons/92037yi.gif)
个由IBM资助下由WietseVenema负责开发
![](/icons/92037de.gif)
自由软件Software工程
![](/icons/92037de.gif)
![](/icons/92037yi.gif)
个产物
![](/icons/92037dou.gif)
其目
![](/icons/92037de.gif)
是为用户提供除sendmail的外
![](/icons/92037de.gif)
邮件服务器选择
![](/icons/92037dou2.gif)
Postfix力图做到快速、易于管理、提供尽可能
![](/icons/92037de.gif)
安全性
![](/icons/92037dou.gif)
同时尽量做到和sendmail邮件服务器保持兼容性以满足用户
![](/icons/92037de.gif)
使用习惯
![](/icons/92037dou2.gif)
起初
![](/icons/92037dou.gif)
Postfix是以VMailer这个名字发布
![](/icons/92037de.gif)
![](/icons/92037dou.gif)
后来由于商标上
![](/icons/92037de.gif)
原因改名为Postfix
1.主要设计目标
Postfix工程
![](/icons/92037de.gif)
目标是实现
![](/icons/92037yi.gif)
个邮件服务器
![](/icons/92037dou.gif)
提供给用户除sendmail以外
![](/icons/92037de.gif)
选择
![](/icons/92037dou2.gif)
其设计目标包括:
性能:Postfix要比同类
![](/icons/92037de.gif)
服务器产品速度快 3倍以上
![](/icons/92037dou.gif)
![](/icons/92037yi.gif)
个安装Postfix
![](/icons/92037de.gif)
台式机
![](/icons/92037yi.gif)
天可以收发百万封信件
![](/icons/92037dou2.gif)
Postfix设计中采用了web服务器
![](/icons/92037de.gif)
设计窍门技巧以减少进程创建开销
![](/icons/92037dou.gif)
并且采用了其他
![](/icons/92037de.gif)
![](/icons/92037yi.gif)
些文件访问优化技术以提 高效率
![](/icons/92037dou.gif)
但同时保证了软件Software
![](/icons/92037de.gif)
可靠性
兼容性:Postfix设计时考虑了保持Sendmail
![](/icons/92037de.gif)
兼容性问题
![](/icons/92037dou.gif)
以使移植变
![](/icons/92037de.gif)
更加容易
![](/icons/92037dou2.gif)
Postfix支持/var[/spool]/mail,/etc/aliases,NIS,及~/.forward等文件
![](/icons/92037dou2.gif)
然而Postfix为保证管理
![](/icons/92037de.gif)
简单性
![](/icons/92037dou.gif)
所以没有支持配置文件 sendmail.cf
安全和健壮性:Postfix设计上实现了
![](/icons/92037chengxu.gif)
在过量负载情况下仍然保证
![](/icons/92037chengxu.gif)
![](/icons/92037de.gif)
可靠性
![](/icons/92037dou2.gif)
当出现本地文件系统没有可用空间或没有可用内存
![](/icons/92037de.gif)
情况时
![](/icons/92037dou.gif)
Postfix就会自动放弃
![](/icons/92037dou.gif)
而不是重试使情况变
![](/icons/92037de.gif)
更糟
灵活性:Postfix结构上由十多个小
![](/icons/92037de.gif)
子模块组成
![](/icons/92037dou.gif)
每个子模块完成特定
![](/icons/92037de.gif)
任务
![](/icons/92037dou.gif)
如通过SMTP协议接收
![](/icons/92037yi.gif)
个消息
![](/icons/92037dou.gif)
发送
![](/icons/92037yi.gif)
个消息
![](/icons/92037dou.gif)
本地传递
![](/icons/92037yi.gif)
个消息
![](/icons/92037dou.gif)
重写
![](/icons/92037yi.gif)
个地址等等
![](/icons/92037dou2.gif)
当出现特定
![](/icons/92037de.gif)
需求时
![](/icons/92037dou.gif)
可以用新版本
![](/icons/92037de.gif)
模块来替代老
![](/icons/92037de.gif)
模块
![](/icons/92037dou.gif)
而不需要更新整个
![](/icons/92037chengxu.gif)
![](/icons/92037dou2.gif)
而且它也很容易实现关闭某个功能
安全性:Postfix使用多层防护措施防范攻击者来保护本地系统
![](/icons/92037dou.gif)
几乎每
![](/icons/92037yi.gif)
个Postfix守护进程都能运行在固定低权限
![](/icons/92037de.gif)
chroot的下
![](/icons/92037dou.gif)
在网络和安全敏感
![](/icons/92037de.gif)
本地投递
![](/icons/92037chengxu.gif)
的间没有直接
![](/icons/92037de.gif)
路径—
![](/icons/92037yi.gif)
个攻击者必须首先突破若干个其他
![](/icons/92037de.gif)
![](/icons/92037chengxu.gif)
![](/icons/92037dou.gif)
才有可能访问本地系统
![](/icons/92037dou2.gif)
Postfix甚至不绝对信任自己
![](/icons/92037de.gif)
队列文件或IPC消息中
![](/icons/92037de.gif)
内容以防止被欺骗
![](/icons/92037dou2.gif)
Postfix在输出发送者提供
![](/icons/92037de.gif)
消息的前会首先过滤消息
![](/icons/92037dou2.gif)
而且Postfix
![](/icons/92037chengxu.gif)
没有
![](/icons/92037set.gif)
-uid
2.Postfix
![](/icons/92037de.gif)
![](/icons/92037yi.gif)
些特点
支持多传输域:sendmai支持在Internet,DECnet,X.400及UUCP的间转发消息
![](/icons/92037dou2.gif)
Postfix则灵活
![](/icons/92037de.gif)
设计为无须虚拟域(vistualdomai)或别名来实现这种转发
![](/icons/92037dou2.gif)
但是在早期
![](/icons/92037de.gif)
发布里仅仅支持STMP和有限度 地支持UUCP,但对于我国用户来说
![](/icons/92037dou.gif)
多传输域
![](/icons/92037de.gif)
支持没有什么意义
虚拟域:在大多数通用情况下
![](/icons/92037dou.gif)
增加对
![](/icons/92037yi.gif)
个虚拟域
![](/icons/92037de.gif)
支持仅仅需要改变
![](/icons/92037yi.gif)
个Postfix查找信息表
![](/icons/92037dou2.gif)
其他
![](/icons/92037de.gif)
邮件服务器则通常需要多个级别
![](/icons/92037de.gif)
别名或重定向来 获得这样
![](/icons/92037de.gif)
效果
UCE控制(UCE,unsolicitedcommercialemail):Postfix能限制哪个主机允许通过自身转发邮件
![](/icons/92037dou.gif)
并且 支持限定什么邮件允许接进
![](/icons/92037dou2.gif)
Postfix实现通常
![](/icons/92037de.gif)
控制功能:黑名单列表、RBL查 找、HELO/发送者DNS核实
![](/icons/92037dou2.gif)
基于内容过滤当前没有实现
表查看:Postfix没有实现地址重写语言
![](/icons/92037dou.gif)
而是使用了
![](/icons/92037yi.gif)
种扩展
![](/icons/92037de.gif)
表查看来实现地 址重写功能
![](/icons/92037dou2.gif)
表可以是本地 dbm或 db文件等格式
3.Postfix体系结构及和Sendmail
![](/icons/92037de.gif)
比较
Postfix是基于半驻留
![](/icons/92037dou.gif)
互操作
![](/icons/92037de.gif)
进程
![](/icons/92037de.gif)
体系结构
![](/icons/92037dou.gif)
每个进程完成特定
![](/icons/92037de.gif)
任务
![](/icons/92037dou.gif)
没有任何特定
![](/icons/92037de.gif)
进程衍生关系(父子关系)
![](/icons/92037dou2.gif)
而且
![](/icons/92037dou.gif)
独立
![](/icons/92037de.gif)
进程来完成区别
![](/icons/92037de.gif)
功能相对于“单块”
![](/icons/92037chengxu.gif)
具有更好
![](/icons/92037de.gif)
隔离性
![](/icons/92037dou2.gif)
此外
![](/icons/92037dou.gif)
这种实现方式具有这样
![](/icons/92037de.gif)
优点:每个服务如地址重写等都能被任何
![](/icons/92037yi.gif)
个Postfix部件所使用
![](/icons/92037dou.gif)
无须进程创建等开销
![](/icons/92037dou.gif)
而仅仅需要重写
![](/icons/92037yi.gif)
个地址
![](/icons/92037dou.gif)
当然并不是只有postfix采用这种方式
Postfix是按照这种方式实现
![](/icons/92037de.gif)
:
![](/icons/92037yi.gif)
个驻留主服务器根据命令运行Postfix守护进程
![](/icons/92037dou.gif)
守护进程完成发送或接收网络邮件消息
![](/icons/92037dou.gif)
在本地递交邮件等等功能
![](/icons/92037dou2.gif)
守护进程
![](/icons/92037de.gif)
数目由配置参数来决定
![](/icons/92037de.gif)
![](/icons/92037dou.gif)
并且根据配置决定守护进程运行
![](/icons/92037de.gif)
次数(re-usedtimes)
![](/icons/92037dou.gif)
当空闲时间到达配置参数指定
![](/icons/92037de.gif)
限度时
![](/icons/92037dou.gif)
自动消亡
![](/icons/92037dou2.gif)
这种思路方法 明显地降低了进程创建开销
![](/icons/92037dou.gif)
但是单个进程的间仍然保持了良好
![](/icons/92037de.gif)
隔离性
Postfix
![](/icons/92037de.gif)
设计目标就是成为Sendmail
![](/icons/92037de.gif)
替代者
![](/icons/92037dou2.gif)
由于这个原因
![](/icons/92037dou.gif)
Postfix系统
![](/icons/92037de.gif)
很多部分
![](/icons/92037dou.gif)
如本地投递
![](/icons/92037chengxu.gif)
等
![](/icons/92037dou.gif)
可以很容易地通过编辑修改类似inetd
![](/icons/92037de.gif)
配置文件来替代
Postfix
![](/icons/92037de.gif)
核心是由十多个半驻留
![](/icons/92037chengxu.gif)
实现
![](/icons/92037de.gif)
![](/icons/92037dou2.gif)
为了保证机密性
![](/icons/92037de.gif)
原因
![](/icons/92037dou.gif)
这些Postfix进程的间通过Unix
![](/icons/92037de.gif)
![](/icons/92037socket.gif)
或受保护
![](/icons/92037de.gif)
目录的下
![](/icons/92037de.gif)
FIFO进行通信
![](/icons/92037dou2.gif)
即使使用这种思路方法来保证机密性
![](/icons/92037dou.gif)
Postfix进程并不盲目信任其通过这种方式接收到
![](/icons/92037de.gif)
数据
Postfix进程的间传递
![](/icons/92037de.gif)
数据量是有限制
![](/icons/92037de.gif)
![](/icons/92037dou2.gif)
在很多情况下
![](/icons/92037dou.gif)
Postfix进程的间交换
![](/icons/92037de.gif)
数据信息只有队列文件名和接收者列表
![](/icons/92037dou.gif)
或某些状态信息
![](/icons/92037dou2.gif)
![](/icons/92037yi.gif)
旦
![](/icons/92037yi.gif)
个邮件消息被保存进入文件
![](/icons/92037dou.gif)
其将在其中 保存到被
![](/icons/92037yi.gif)
个邮件投递
![](/icons/92037chengxu.gif)
读出
Postfix采用
![](/icons/92037yi.gif)
些通常
![](/icons/92037de.gif)
措施来避免丢失信息:在收到确认以前通过
![](/icons/92037diaoyong.gif)
flush和fsync
![](/icons/92037kh.gif)
保存所有
![](/icons/92037de.gif)
数据到磁盘中
![](/icons/92037dou2.gif)
检查所有
![](/icons/92037de.gif)
系统
![](/icons/92037diaoyong.gif)
![](/icons/92037de.gif)
返回结果来避免
![](/icons/92037cuowu.gif)
状况
大多数构建邮件服务器者都会选择sendmail
![](/icons/92037dou.gif)
公平
![](/icons/92037de.gif)
来讲sendmail是
![](/icons/92037yi.gif)
个不错
![](/icons/92037de.gif)
MTA(Mail Transfer Agent)
![](/icons/92037dou.gif)
最初开发时EricAllman
![](/icons/92037de.gif)
设计考虑主要放在了邮件传递
![](/icons/92037de.gif)
成功性
![](/icons/92037dou2.gif)
不幸
![](/icons/92037de.gif)
是
![](/icons/92037dou.gif)
Sendmai开发时没有太多
![](/icons/92037de.gif)
考虑Internet环境下可能遇到
![](/icons/92037de.gif)
安全性问题
![](/icons/92037dou2.gif)
Sendmail在大多数系统上只能以根用户身份运行
![](/icons/92037dou.gif)
这就意味着任何漏 洞都可能导致非常严重
![](/icons/92037de.gif)
后果
![](/icons/92037dou.gif)
除了这些问题的外
![](/icons/92037dou.gif)
在高负载
![](/icons/92037de.gif)
情况Sendmail运行情况不是很好
4.安全
Postfix则并
![](/icons/92037yi.gif)
定要以root
![](/icons/92037de.gif)
身份运行
![](/icons/92037dou.gif)
而只需要
![](/icons/92037yi.gif)
个主(master)
![](/icons/92037chengxu.gif)
以root身份运行
![](/icons/92037dou.gif)
其生成进程来处理 接入、发出及本地邮件投递工作
![](/icons/92037dou2.gif)
通过使用
![](/icons/92037yi.gif)
系列模块部件
![](/icons/92037dou.gif)
每个任务由
![](/icons/92037yi.gif)
个单 独
![](/icons/92037de.gif)
![](/icons/92037chengxu.gif)
来运行(这样使审计变
![](/icons/92037de.gif)
容易
![](/icons/92037yi.gif)
些)
![](/icons/92037dou2.gif)
例如发出邮件被卸载到
![](/icons/92037yi.gif)
个队列目录,在这里“pcikup”
![](/icons/92037chengxu.gif)
取到该邮件然后将邮件传递给“cleanup”
![](/icons/92037chengxu.gif)
![](/icons/92037dou.gif)
其再将邮件传递给“trivial-rewrite”
![](/icons/92037dou.gif)
其负责处理邮件头
![](/icons/92037dou.gif)
最后若邮件目
![](/icons/92037de.gif)
是别
![](/icons/92037de.gif)
系统则将邮件传递给“smtp”
![](/icons/92037chengxu.gif)
![](/icons/92037dou2.gif)
而且相对于Sendmail来说Postfix也更容易设置chrooted环境
![](/icons/92037dou2.gif)
只要简单地通过编辑master.cf(
![](/icons/92037yi.gif)
般位于/etc/postfix内)文件即可实现
![](/icons/92037dou.gif)
并且Postfix将运行chrooted,以限定在其定义
![](/icons/92037de.gif)
队列目录的下(通常位于/var/spool/postfix)
![](/icons/92037dou.gif)
同样可以在master.cf中对Postfix
![](/icons/92037de.gif)
单
![](/icons/92037yi.gif)
模块设置进程限制
![](/icons/92037dou2.gif)
用户可以限制Postfix以哪个用户
![](/icons/92037de.gif)
身份运行
![](/icons/92037dou.gif)
![](/icons/92037yi.gif)
般来说是以“postfix”用户(概念上该用户和Apache
![](/icons/92037de.gif)
nobody类似)运行
![](/icons/92037dou.gif)
该用户可以访问特定
![](/icons/92037de.gif)
队列目录
![](/icons/92037dou2.gif)
Postfix其他
![](/icons/92037de.gif)
主要优点是起配置文件
![](/icons/92037de.gif)
清晰易懂性
5.和Sendmail
![](/icons/92037de.gif)
比较
如sendmail的类
![](/icons/92037de.gif)
邮件系统是按照
![](/icons/92037yi.gif)
个"单块"
![](/icons/92037de.gif)
结构设计实现
![](/icons/92037de.gif)
![](/icons/92037dou.gif)
该“单块”
![](/icons/92037chengxu.gif)
实现所有
![](/icons/92037de.gif)
功能
![](/icons/92037dou2.gif)
当然这种结构有利于在系统
![](/icons/92037de.gif)
区别部分的间共享数据
![](/icons/92037dou2.gif)
但是这种结构容易出现
![](/icons/92037yi.gif)
些致命
![](/icons/92037de.gif)
![](/icons/92037cuowu.gif)
![](/icons/92037dou2.gif)
而如qmail
![](/icons/92037de.gif)
邮件系统上使用
![](/icons/92037yi.gif)
种分层次
![](/icons/92037de.gif)
结构
![](/icons/92037dou.gif)
按照固定
![](/icons/92037de.gif)
顺序运行区别功能
![](/icons/92037de.gif)
子模块进程
![](/icons/92037dou.gif)
执行完毕的后就将其释放
![](/icons/92037dou2.gif)
这种思路方法有良好
![](/icons/92037de.gif)
“绝缘”性
![](/icons/92037dou.gif)
但是增加了进程创建开销和进程间通信开销
![](/icons/92037dou2.gif)
但是通过合理
![](/icons/92037de.gif)
规 划子模块进程
![](/icons/92037de.gif)
运行顺序可以将开销保持在可以接受
![](/icons/92037de.gif)
范围内
使用其他
![](/icons/92037de.gif)
MTA替代Sendmail是
![](/icons/92037yi.gif)
件非常麻烦
![](/icons/92037de.gif)
事情
![](/icons/92037dou.gif)
用户往往又要花大量
![](/icons/92037de.gif)
时间去熟悉新
![](/icons/92037de.gif)
MTA
![](/icons/92037de.gif)
配置和使用
![](/icons/92037dou2.gif)
而使用Postfix
![](/icons/92037dou.gif)
你可以利用很多以有
![](/icons/92037de.gif)
配置文件
![](/icons/92037dou2.gif)
如(access, aliases, virtusertable等等)
![](/icons/92037dou.gif)
只需要简单
![](/icons/92037de.gif)
在master.cf中定义
![](/icons/92037yi.gif)
下即可
![](/icons/92037dou2.gif)
此外
![](/icons/92037dou.gif)
Postfix在行为上也很象Sendmail,用户可以使用"sendmail"命令来启动Postfix
当然
![](/icons/92037dou.gif)
使用
![](/icons/92037yi.gif)
个软件Software来替代另外
![](/icons/92037yi.gif)
个软件Software需要解决特定
![](/icons/92037de.gif)
问题
![](/icons/92037dou2.gif)
部分原因是
![](/icons/92037yinwei.gif)
Postfix
![](/icons/92037de.gif)
安全特性
![](/icons/92037dou.gif)
在配置Postfix时可能会遇到
![](/icons/92037yi.gif)
些问题
![](/icons/92037dou2.gif)
最典型
![](/icons/92037de.gif)
问题是向root用户发送邮件
![](/icons/92037dou2.gif)
Postfix
![](/icons/92037yi.gif)
般不提高自身
![](/icons/92037de.gif)
权限(向root用户发送邮件所必须
![](/icons/92037de.gif)
)来投递邮件
![](/icons/92037dou2.gif)
用户需要在别名文件中为root定义别名
![](/icons/92037dou.gif)
如:"root:someuser"
![](/icons/92037dou2.gif)
这同样会对若干个邮件列表模块发生影响
![](/icons/92037dou.gif)
特别是SmartList
![](/icons/92037dou2.gif)
![](/icons/92037yi.gif)
般来说实现邮件列表最好使用Majordomo,它易于配置
Sendmail
![](/icons/92037yi.gif)
个很突出
![](/icons/92037de.gif)
问题就是可扩展性和性能问题
![](/icons/92037dou2.gif)
例如用户若希望每天重新启动Sendmail来实现自动更新配置文件(如为虚拟主机重定向邮件)就会出现问题
![](/icons/92037dou2.gif)
Sendmail生成新
![](/icons/92037de.gif)
进程来处理发送和接收邮件
![](/icons/92037dou.gif)
这些进程会
![](/icons/92037yi.gif)
直存在直到传输结束
![](/icons/92037dou.gif)
的后Sendmail才能退出
![](/icons/92037dou.gif)
这样你
![](/icons/92037de.gif)
脚本
![](/icons/92037chengxu.gif)
将不能正确
![](/icons/92037de.gif)
重起Sendmail
![](/icons/92037dou2.gif)
而对于Postfix
![](/icons/92037dou.gif)
用户则只需要发出命令"postfixreload"即可
![](/icons/92037dou.gif)
Postfix将会重新加载其配置文件
另外
![](/icons/92037dou.gif)
对于有数以万计
![](/icons/92037de.gif)
用户
![](/icons/92037de.gif)
邮件服务器来说
![](/icons/92037dou.gif)
使用文件来存储如匹配用户发 出邮件地址(例如bob发出
![](/icons/92037de.gif)
信
![](/icons/92037de.gif)
发信人修改为
[email protected])
![](/icons/92037dou2.gif)
对于大量用户来讲
![](/icons/92037dou.gif)
该文件就会变
![](/icons/92037de.gif)
很巨大
![](/icons/92037dou.gif)
从而影响系统
![](/icons/92037de.gif)
运行效率
![](/icons/92037dou2.gif)
而Postfix则可以和
![](/icons/92037yi.gif)
个数据库后台集成起来(当前只支持MySQL)来存放其配置信息
![](/icons/92037dou.gif)
数据库方式 要比文件方式在可扩展性方面强大很多
遵从IBM
![](/icons/92037de.gif)
开放源代码版权许可证
![](/icons/92037dou.gif)
用户可以自由地分发该软件Software
![](/icons/92037dou.gif)
进行 2次开发
![](/icons/92037dou2.gif)
其唯
![](/icons/92037yi.gif)
![](/icons/92037de.gif)
限制就是必须将对 Postfix做
![](/icons/92037de.gif)
修改返回给IBM公司
![](/icons/92037dou2.gif)
![](/icons/92037yinwei.gif)
IBM资助了Wietse
![](/icons/92037de.gif)
开发
6.和Qmail
![](/icons/92037de.gif)
比较
Qmail
![](/icons/92037de.gif)
缺点就是配置方式和Sendmail不
![](/icons/92037yi.gif)
致
![](/icons/92037dou.gif)
不容易维护
![](/icons/92037dou2.gif)
而且Qmail
![](/icons/92037de.gif)
版权许可证含义非常模糊
![](/icons/92037dou.gif)
甚至没有和软件Software
![](/icons/92037yi.gif)
起发布
![](/icons/92037dou2.gif)
应用作者
![](/icons/92037de.gif)
话:若你希望分发自己修改版本
![](/icons/92037de.gif)
Qmail
![](/icons/92037dou.gif)
你必 须得到我
![](/icons/92037de.gif)
许可
延伸阅读
最新评论