邮件系统postfix安装与配置(2)
二、 postfix对邮件的处理过程
2.1 接收邮件的过程
当postfix接收到一封新邮件时,新邮件首选在incoming队列处停留,然后针对不同的情况进行不同的处理:
1.对于来自于本地的邮件:sendmail进程负责接收来自本地的邮件放在maildrop队列中,然后pickup进程对maildrop中的邮件进行完整性检测。maildrop目录的权限必须设置为某一用户不能删除其他用户的邮件。
2.对于来自于网络的邮件:smtpd进程负责接收来自于网络的邮件,并且进行安全性检测。可以通过UCE(unsolicited commercial email)控制smtpd的行为。
3.由postfix进程产生的邮件:这是为了将不可投递的信息返回给发件人。这些邮件是由bounce后台程序产生的。
5. 由postfix自己产生的邮件:提示postmaster(也即postfix管理员)postfix 运行过程中出现的问题。(如SMTP协议问题,违反UCE规则的记录等等。)
关于cleanup后台程序的说明:cleanup是对新邮件进行处理的最后一道工序
它对新邮件进行以下的处理:添加信头中丢失的Form信息;为将地址重写成标准的[email]user@fully.qualified.domain[/email]格式进行排列;重信头中抽出收件人的地址;将邮件投入incoming队列中,并请求邮件队列管理进程处理该邮件;请求trivial-rewrite进程将地址转换成标准的[email]user@fully.qualified.domain[/email]格式。
2.2 投递邮件的过程
新邮件一旦到达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的安装过程
3.1源代码包的安装
1. 获取postfix的源代码包
从postfix官方站点[url]www.postfix.org取得postfix的源代码包postfix-19991231-pl08.tar.gz[/url]。将其拷贝到/tmp
2.解开源代码包,将生成/tmp/ postfix-19991231-pl08目录。 tar xvzf postfix-19991231-pl08.tar.gz
3.编译源代码包 cd /tmp/ postfix-19991231-pl08 make
4.建立一个新用户“postfix”,该用户必须具有唯一的用户id和组id号,同时应该让该用户不能登录到系统,也即不为该用户指定可执行的登录外壳程序和可用的用户宿主目录。我们可以先用adduser postfix 添加用户再编辑/etc/passwd文件中的相关条目如下所示: postfix:*:12345:12345:postfix:/no/where:/no/shell
5.确定/etc/aliases文件中包含如下的条目: postfix: root
6. 以root用户登录,在/tmp/ postfix-19991231-pl08目录下执行命令: ./INSTALL.sh
7. 启动postfix # postfix start
8.关于maildrop目录权限的说明:
postfix可以使用一个所有用户都可写的(也即目录权限为1773)的maildrop目录来让本地用户提交邮件。这种方法避免了使用set- uid 或 set-gid软件,并且在邮件系统不可用时,用户仍然可以提交邮件。其他用户没有访问该目录中的队列文件的
亮晶晶 发表于: 2009-09-29
我要回答相关推荐
-
邮件系统postfix安装与配置(5)
5. RFC 821信头限制 RFC 821对邮件的信头做了严格的规定,但是广泛使用的sendmail并不 […]
-
邮件系统postfix安装与配置(4)
2. mydestination mydestination参数指定postfix接收邮件时收件人的域名,换句 […]
-
邮件系统postfix安装与配置(3)
如果你的系统有多个用户的话,最好取消以上的方式而采用利用set-gid 用户权限提交邮件的方式。这时,我们首先 […]
-
邮件系统postfix安装与配置(1)
邮件系统postfix安装与配置 一、 postfix概述 postfix是Wietse Venema在IBM […]
-
在postfix中实现基于cyrus-sasl的SMTP认证
在postfix中实现基于cyrus-sasl的SMTP认证 概述: 全世界范围内的SMTP服务器与日俱增,但 […]