邮箱服务器是企业应用的最广泛的信息化应用之一。现在企业中,十有八九都有邮箱服务器,而其中大部分企业邮件服务器又都是部署在Linux系统上的。因为基于Liunx的邮箱服务器系统,可以提供比较高的稳定性,而且又是免费的。所以,这两个组合,就比较受企业的欢迎。
在Linux操作系统上,可以部署的邮箱服务器种类比较多。如现在比较流行的有Sendmail邮箱服务器、Qmail邮箱服务器、Postfix邮箱服务器等等。不过笔者还是比较倾向于Postfix邮箱服务器。因为这个服务器比其他两个服务器来说,具有更高的性能。笔者对这个邮箱服务器研究的比较深;也曾给多家企业部署过这个邮箱服务器。所以,非常了解这个邮箱服务器高性能背后的技术优势。或许经过笔者的一番介绍之后,大家也会越来越中意Postfix邮箱服务器。
秘密一:利用Deferred对列巧妙应付邮件风暴问题
在Postfix邮箱服务器中,是通过四个对列来管理邮件的。一是Maildrop对列,主要用来存放本地邮件,同时这个对列中的邮件也会被同步复制到Incoming对列中。二是Incoming对列,主要用来防止正在到达或者队列管理进程未发现的邮件。三是Active对列,这个对列主要用来防止队列管理进程已经打开并准备投递的邮件,这个队列往往具有长度的限制。四是Deferred队列,往往邮箱服务器会把暂时不能够发送的邮件存放在这个队列中。Postfix邮箱服务器就是通过这四个队列来应付邮件风暴的问题。
当有新邮件到达时,Postfix邮箱服务器会先对自身进行初始化,初始化时Postfix邮箱服务器会同时接受两个并发的连接请求(这个数字会随着实际情况的变化而增长)。一般情况下,当邮件发送成功后,可以同时接受的并发连接的数据就会缓慢的增长至一个可以配置的值。不过,如果此时系统的硬件、软件消耗已经达到系统的警戒水平的时候,系统就会停止自动增长。
当邮箱服务器接受到的新邮件数量超过Postix邮箱服务器的处理能力,这就叫做邮件风暴。当出现这个邮件风暴的时候,Postix邮箱服务器会暂时停止去投递Deferred队列中的邮件,而是先去处理新接收到的邮件。因为相对来说,处理新接收的邮件要快的多,邮件的延迟要小于处理Deferred队列中的邮件。当邮件风暴过后,Postix邮箱服务器空闲的时候,再回回去处理Deferred队列中的邮件。如此的话,就可以减少邮件风暴对于接收邮件的影响。让用户在邮件风暴的过程中,仍然可以正常的接收邮件。
秘密二:存储不可到达的邮件地址,提高邮件分发的效率
有时候由于用户无意中会输错邮件接收方的地址,又或者说,对方的邮件地址已经注销等等原因,某些邮件始终无法发送到对方。这些邮件地址,就叫做邮件不可达。为了防止邮箱服务器多次尝试向这些不可达的地址发送邮件,浪费了不必要的时间与资源。所以,Postix邮箱服务器会在服务器的内存中保存一个有长度限制的当前不可到达的邮件地址列表。