19.4.2 所需要的软件与软件结构
相对于SendMail还需要m4以及SendMail-cf来说,Postfix要简单许多,您只要安装Postfix即可。虽然我们的CentOS同时提供SendMail与Postfix,不过鸟哥极不建议这两者并存。因此在安装完Postfix后,记得将SendMail删除。所以可进行如下操作:
[root@linux ~]# /etc/init.d/SendMail stop [root@linux ~]# yum install Postfix [root@linux ~]# rpm -e SendMail [root@linux ~]# /etc/init.d/Postfix start |
因为Linux系统至少需要一个MTA来让系统内部的账号传送邮件,所以您需要先安装Postfix后才可以删除SendMail。顺序可不要搞错了,否则会出现一堆相互依赖属性的问题。那么Postfix有哪些重要的配置文件呢?它主要的配置文件都在/etc/Postfix/中,详细的文件内容如下。
1. 配置文件
(1)/etc/Postfix/main.cf
这是主要的Postfix配置文件,几乎所有的设置参数都是在这个文件内规范的。这个文件默认是一个完整的说明文件,可以参考这个文件的内容设置属于您的Postfix MTA。修改过这个文件后,需要重新启动Postfix。
(2)/etc/Postfix/Master.cf
该文件主要规定了Postfix每个程序的运行参数,是很重要的一个配置文件。不过这个文件默认已经配置好了,通常不需要更改。
(3)/etc/Postfix/access(利用postmap处理)
与SendMail的/etc/Mail/access具有相同的用途,可以设置开放Relay、拒绝联机的来源或目标地址等信息。不过此文件的生效还需要在/etc/Postfix/ main.cf中启动这个文件,且设置完毕后需要以postmap来处理成为数据库文件。
(4)/etc/aliases(利用postalias或newaliases均可)
不同的distributions,此文件放置的目录也将不同,在CentOS中,为了完全兼容于SendMail与Postfix,所以这个文件默认放在/etc/中,其他版本则可能放置到/etc/Postfix目录中。这个文件的用法与SendMail完全相同。
2. 执行文件
常见的执行文件有以下这些。
(1)/usr/sbin/postconf(查阅Postfix的设置数据)
这个指令可以列出目前您的Postfix的详细设置数据,包括系统默认值也会被列出来,所以数据量相当庞大。如果您在main.cf里曾经修改过某些默认参数的话,想要仅列出非默认值的设置数据,则使用“postconf-n”参数即可。
(2)/usr/sbin/Postfix(主要的daemon指令)
此为Postfix的主要执行文件,可以简单的使用它来启动或重新读取配置文件:
[root@linux ~]# Postfix check <==检查 Postfix 相关的文件、权限等是否正确 [root@linux ~]# Postfix start <==开始 Postfix 的执行 [root@linux ~]# Postfix stop <==关闭 Postfix [root@linux ~]# Postfix flush <==强制将目前正在邮件队列的邮件寄出 [root@linux ~]# Postfix reload <==重新读入配置文件,即/etc/Postfix/main.cf |
需要注意的是,每次更改main.cf后,务必重新启动Postfix,可简单的使用“Postfix reload”即可。
(3)/usr/sbin/postalias
设置别名数据库的指令,因为MTA读取数据库格式的文件性能较好,所以我们都会将ASCII格式的文件重建为数据库。在Postfix中,这个指令主要用于转换/etc/aliases成为 /etc/aliases.db。用法如下:
[root@linux ~]# postalias hash:/etc/aliases # hash 为一种数据库的格式,然后/etc/aliases.db就会自动更新了 |
(4)/usr/sbin/postcat
主要用于检查放在queue(队列)中的信件内容。由于队列中的信件内容是给MTA看的,所以格式并不是我们看的懂的文字数据。这个时候您需要用postcat才可以看出该信件的内容。在/var/spool/Postfix内有相当多的目录,假设有一个文件名为/deferred/abcfile的文件,那可以利用下面的方式来查询该文件的内容:
[root@linux ~]# postcat /var/spool/Postfix/deferred/abcfile |
(5)/usr/sbin/postmap
这个指令的用法与postalias类似,不过它主要用于转换Access文件的数据库。用法如下:
[root@linux ~]# postmap hash:/etc/Postfix/access |
(6)/usr/sbin/postqueue
类似于Mailq的输出结果,可以输入“postqueue-p”比较一下即可知道。
整个Postfix的软件结构就是这个样子,接下来简单介绍一下Postfix的收发信件功能。