postfix邮件的接收和投递过程

系统 Linux
本篇报道主要关于postfix邮件的接收和投递过程,以下是postfix处理邮件时的人性化步骤及其特有的功能

postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。postfix邮件收发和投递过程更是具有人性化。

一、接收邮件的过程

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

1.对于来自于本地的邮件:sendmail进程负责接收来自本地的邮件放在maildrop队列中,然后pickup进程对maildrop中的邮件进行完整性检测。maildrop目录的权限必须设置为某一用户不能删除其他用户的邮件。

2.对于来自于网络的邮件:smtpd进程负责接收来自于网络的邮件,并且进行安全性检测。可以通过UCE(unsolicitedcommercialemail)控制smtpd的行为。

3.由postfix进程产生的邮件:这是为了将不可投递的信息返回给发件人。这些邮件是由bounce后台程序产生的。

4.由postfix自己产生的邮件:提示postmaster(也即postfix管理员)postfix运行过程中出现的问题。(如SMTP协议问题,违反UCE规则的记录等等。)关于cleanup后台程序的说明:
cleanup是对新邮件进行处理的***一道工序它对新邮件进行以下的处理:添加信头中丢失的Form信息;
为将地址重写成标准的user@fully.qualified.domain格式进行排列;
重信头中抽出收件人的地址;
将邮件投入incoming队列中,并请求邮件队列管理进程处理该邮件;
请求trivial-rewrite进程将地址转换成标准的user@fully.qualified.domain格式。

二、投递邮件的过程

新邮件一旦到达incoming队列,下一步就是开始投递邮件,postfix投递邮件时的处理过程如图三所示。相关的说明如下:邮件队列管理进程是整个postfix邮件系统的心脏。它和local、smtp、pipe等投递代理相联系,将包含有队列文件路径信息、邮件发件人地址、邮件收件人地址的投递请求发送给投递代理。队列管理进程维护着一个deferred队列,那些无法投递的邮件被投递到该队列中。除此之外,队列管理进程还维护着一个active队列,该队列中的邮件数目是有限制的,这是为了防止在负载太大时内存溢出。邮件队列管理程序还负责将收件人地址在relocated表中列出的邮件返回给发件人,该表包含无效的收件人地址。

如果邮件队列管理进程请求,rewrite后台程序对收件人地址进行解析。但是缺省地,rewrite只对邮件收件人是本地的还是远程的进行区别。如果邮件对你管理进程请求,bounce后台程序可以生成一个邮件不可投递的报告。本地投递代理local进程可以理解类似UNIX风格的邮箱,sendmail风格的系统别名数据库和sendmail风格的.forward文件。可以同时运行多个local进程,但是对同一个用户的并发投递进程数目是有限制的。你可以配置local将邮件投递到用户的宿主目录,也可以配置local将邮件发送给一个外部命令,如流行的本地投递代理procmail。在流行的linux发行版本RedHat中,我们就使用procmail作为最终的本地投递代理。远程投递代理SMTP进程根据收件人地址查询一个SMTP服务器列表,按照顺序连接每一个SMTP服务器,根据性能对该表进行排序。在系统负载太大时,可以有数个并发的SMTP进程同时运行。pipe是用于UUCP协议的投递代理。以上介绍postfix邮件。
 

【编辑推荐】

  1. MySQL数据库备份基础知识汇总
  2. MySQL常用技巧都包括哪些?
  3. 对MySQL数据库中的命令备忘描述
  4. MySQL转义字符的实际应用
  5. 如何用PHP来实现MySQL备份?
责任编辑:chenqingxiang
相关推荐

2011-02-21 08:50:50

2011-01-19 17:30:21

Postfix邮件投递

2010-06-02 18:17:09

Postfix邮件

2011-02-21 13:26:47

Postfix邮件处理

2011-01-19 17:34:39

Postfix如何接收邮件

2010-06-02 18:00:05

Postfix邮件

2010-06-09 18:17:20

Postfix邮件

2010-05-14 15:43:32

MySQL数据库

2011-01-19 13:39:38

Postfix邮件监控

2011-01-20 09:42:29

postfix邮件

2011-02-21 10:13:38

Postfix

2011-01-18 15:57:00

Postfix

2011-04-25 15:29:54

Exchange报告

2011-01-20 09:45:52

Postfix邮件

2009-10-10 15:54:55

RHEL 4配置Pos

2010-06-09 18:08:52

Postfix邮件

2011-01-20 10:08:25

postfix安装

2010-01-11 09:46:24

Postfix邮件系统

2011-02-21 14:12:15

Postfix服务器安装

2011-01-18 15:47:20

点赞
收藏

51CTO技术栈公众号