postfix邮件服务器配置文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、一、 postfix postfix 概述概述

postfix 是Wietse Venema 在IBM 的GPL 协议之下开发的MTA(邮件传输代理)软件。下面一段话摘自postfix 的官方站点(): “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 中的邮件。

1.2.3 postfix 对无法投递的邮件的处理

当一封邮件第一次不能成功投递时,postfix 会给该邮件贴上一个将来的时间邮票。邮件队列管理程序会忽略贴有将来时间邮票的邮件。时间邮票到期时,postfix 会尝试再对该邮件进行一次投递,如果这次投递再次失败,postfix 就给该邮件贴上一个两倍于上次时间邮票的时间邮票,等时间邮票到期时再次进行投递,依此类推。当然,经过一定次数的尝试之后,postfix 会放弃对该邮件的投递,返回一个错误信息给该邮件的发件人。

1.2.4 postfix 对不可到达的目的地邮件的处理

postfix 会在内存中保存一个有长度限制的当前不可到达的地址列表。这样就避免了对那些目的地为当前不可到达地址的邮件的投递尝试。从而大大提高了系统的性能。

1.2.2 postfix 的安全性

postfix 通过一系列的措施来提高系统的安全性,这些措施包括:

1. 动态分配内存,从而防止系统缓冲区溢出;

2. 把大邮件分割成几块进行处理,投递时再重组;

3. Postfix 的各种进程不在其他用户进程的控制之下运行,而是运行在驻留主进程master 的控制之下,与其他用户进程无父子关系,所有有很好的绝缘性。

4. Postfix 的队列文件有其特殊的格式,只能被postfix 本身识别;

二、二、 postfix postfix 对邮件的处理过程对邮件的处理过程

2.1 接收邮件的过程

当postfix 接收到一封新邮件时,新邮件首选在incoming 队列处停留,然后针对不同的情况进行不同的处理:

1.对于来自于本地的邮件:sendmail 进程负责接收来自本地的邮件放在

相关文档
最新文档