Postfix 邮件系统的安装与配置

【Postfix 邮件系统的安装与配置】一、 postfix概述
postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件 。下面一段话摘自postfix的官方站点(http://www.postfix.org):
“postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试 。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件 。这真实一个让人吃惊的数字 。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性 。
1.1 postfix的特点
1. postfix是免费的:
postfix想要作用的范围是广大的Internet用户,试图影响大多数的Internet上的电子邮件系统,因此它是免费的 。
2. 更快:
postfix在性能上大约比sendmail快三倍 。一部运行postfix的台式PC每天可以收发上百万封邮件 。
3. 兼容性好:
postfix是sendmail兼容的,从而使sendmail用户可以很方便地迁移到postfix 。Postfix支持/var[/spool]/mail、/etc/aliases、 NIS、和 ~/.forward 文件 。
4. 更健壮:
postfix被设计成在重负荷之下仍然可以正常工作 。当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目 。当处理的邮件数目增长时,postfix运行的进程不会跟着增加 。
5. 更灵活:
postfix是由超过一打的小程序组成的,每个程序完成特定的功能 。你可以
通过配置文件设置每个程序的运行参数 。
6. 安全性
postfix具有多层防御结构,可以有效地抵御恶意入侵者 。如大多数的postfix程序可以运行在较低的权限之下,不可以通过网络访问安全性相关的本地投递程序等等 。
1.2 postfix的总体结构
postfix由十几个具有不同功能的半驻留进程组成,并且在这些进程中并无特定的进程间父子关系 。某一个特定的进程可以为其他进程提供特定的服务 。
大多数的postfix进程由一个进程统一进行管理,该进程负责在需要的时候调用其他进程,这个管理进程就是master进程 。该进程也是一个后台程序 。
这些postfix进程是可以配置的,我们可以配置每个进程运行的数目,可重用的次数,生存的时间等等 。通过灵活的配置特性可以使整个系统的运行成本大大降低 。
1.2.1 postfix的邮件队列(mail queues)
postfix有四种不同的邮件队列,并且由队列管理进程统一进行管理:
1. maildrop:本地邮件放置在maildrop中,同时也被拷贝到incoming中 。
2. incoming:放置正在到达或队列管理进程尚未发现的邮件 。
3. active:放置队列管理进程已经打开了并正准备投递的邮件,该队列有
长度的限制 。
4. deferred:放置不能被投递的邮件 。
队列管理进程仅仅在内存中保留active队列,并且对该队列的长度进行限
制,这样做的目的是为了避免进程运行内存超过系统的可用内存 。
1.2.2 postfix对邮件风暴的处理
当有新的邮件到达时,postfix进行初始化,初始化时postfix同时只接受两个并发的连接请求 。当邮件投递成功后,可以同时接受的并发连接的数目就会缓慢地增长至一个可以配置的值 。当然,如果这时系统的消耗已到达系统不能承受的负载就会停止增长 。还有一种情况时,如果postfix在处理邮件过程中遇到了问题,则该值会开始降低 。
当接收到的新邮件的数量超过postfix的投递能力时,postfix会暂时停止投递deferred队列中的邮件而去处理新接收到的邮件 。这是因为处理新邮件的延迟要小于处理deferred队列中的邮件 。Postfix会在空闲时处理deferred中的邮件 。

推荐阅读