邮件系统并不是单一的一个系统,而是由不同的组件和功能组成的,而要想实现邮件的通信,就需要一些协议的支持(也就是邮件协议)。
下面分别介绍一下邮件系统角色和邮件系统的协议。
邮件系统的角色
MTA(邮件传输代理):一般被称为邮件服务器软件,负责接收客户端软件发送的邮件,并将邮件传输给其他的MTA程序,是邮件系统的中的核心部分。
MUA(邮件用户代理):一般被称为邮件客户端软件,负责为用户提供发送,接收和管理电子邮件的界面。
MDA(邮件分发代理):MDA软件负责在服务器中将邮件分发到用户的邮箱目录,并不面向用户,直接集成在MTA中。
邮件通信协议
SMTP(邮件传输协议):主要用于发送和传输邮件,使用TCP的25号端口。
POP(邮局协议):主要用于从邮件服务器中收取邮件,使用TCP的110号端口。
IMAP(互联网消息访问协议):同样用于收取邮件,IMAP提供了更为灵活和强大的邮件收取,邮件管理功能,使用TCP的143号端口。
注意:只有电子邮件客户端和服务器同时支持SMTP和POP/IMAP协议,才能够实现完整的邮件发送和收取功能。
编译安装Postfix邮件系统
1、准备工作
为了避免端口冲突,程序冲突等现象,应将系统自带的sendmail服务停用,并将默认启动状态设为关闭。(由于Postfix系统兼容并沿用了sendmail的部分设置,因此建议保留sendmail软件包,而不是直接卸载)
除此之外,在以后的文章中需要讲解Postfix支持SASL认证,所以应确认一下软件包是否安装。
[root@localhost /]#rpm -qa | grep cyrus
[root@localhost /]#rpm -qa | grep db4-devel*
[root@localhost /]#rpm -qa | grep pam-devel*
为了加强邮件服务器的权限控制,需要创建专门的运行组账号postfix和postdrop,以及用户账号postfix。
[root@localhost /]#groupadd -g 1200 postdrop
[root@localhost /]#groupadd -g 1000 postfix
[root@localhost /]#useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix
2编译安装Postfix
[root@localhost media]#tar zxf postfix-2.8.2.tar.gz -C /usr/src/
[root@localhost media]#cd /usr/src/postfix-2.8.2
postfix软件包的配置步骤使用“make makefiles”进行,具体配置选项可以参考源码目录中README_FILES/下的说明文件,如果使用postfix支持发信认证,可参考文件SASL_README中的相关信息。
[root@localhost postfix-2.8.2]#make makefiles ' CCARGS=-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl' 'AUXLIBS=-L/usr/lib/sasl2 -lsasl2'
上述配置参数解释如下:
CCARGS参数:为编译器提供额外的扩展参数。列如:启用SASL认证,并指出cyrus-sasl认证程序的头文件位于/usr/include/sasl/。
AUXLIBS参数:为编译器指出位于标准位置之外的额外函数库。列如:cyrus-sasl认证程序的库文件位于/usr/lib/sasl2/
[root@localhost postfix-2.8.2]#make && make install //编译并安装
执行make install命令以后,最后阶段会需要设置一些安装的参数,一般直接按回车键接受默认或自动识别的配置即可。
完成安装后,应执行postconf -a命令检查所支持认证的方式,若输出的结果未包含“cyrus”,则应检查配置步骤,纠正错误后重新进行配置,编译安装。
[root@localhost postfix-2.8.2]#postconf -a
cyrus //支持cyrus认证
dovecot //支持dovecot认证
3、了解Postfix安装的几个主要目录
/etc/postfix:包括postfix服务的主配置文件,各类脚本,查询表。
/usr/libexec/postfix/:包括postfix服务的各个服务器程序文件。
/var/spool/postfix/:包括postfix邮件服务的邮件队列相关的子目录,每个子目录用于保存不同的邮件。常见的几个子目录及用途如下所述:
incoming:存放刚接收到的邮件。
active:存放正在投递的邮件。
deferred:存放以前投递失败的邮件。
hold:存放被阻止发送的邮件。
corrupt:存放不可读或不可分析的邮件。
/usr/sbin/:包括postfix服务的各种管理工具程序,这些程序文件名以post开头。常用程序解释如下:
postalias:构造,修改和查询别名表。
postconf:显示和编辑main.cnf主配置文件。
postfix:启动,停止,检查,重载服务(start,stop,check,reload)要求有root权限。
postmap:构造,修改或查询查询表文件(记录如别名等映射关系的文件)
postqueue:查看邮件列队,一般用户也可以使用。
postsuper:管理邮件队列,要求有root权限。
4、主要配置文件
postfix邮件系统的主要配置文件包括main.cf和master.cf,都位于/etc/postfix/目录下。其中main.cf是postfix服务的配置文件,设置邮件服务器时以修改此文件中的内容为主;而master.cf是主程序master的配置文件,一般不需要修改。
可以使用postconf -n命令显示main.cf配置文件中的非默认配置(可以理解为有效配置),为了避免配置参数过多带来的干扰,提高易读性,建议对main.cf配置文件进行适当的简化,只保留非默认配置。
[root@localhost /]#postconf -n > /main.cf
[root@localhost /]#mv /etc/postfix/main.cf /etc/postfix/main.cf.bk
[root@localhost /]#mv /main.cf /etc/postfix/main.cf
5、postfix的日志文件
postfix邮件服务器的日志文件位于/etc/log/miallog,该文件中记录了本机中的邮件进出相关的消息,包括邮件服务器的启动,出错,与其他SMTP服务器的会话信息等。在维护邮件服务器的过程中额可以使用tail -f可以跟踪日志的变化。
[root@localhost /]#tar -f /var/log/maillog
当日志内容较多时,还可以使用egrep命令进行过滤,只查看包含reject,error,fatal等教重要的记录。
[root@localhost /]#egrep '(reject|error|fatal|panic):' /var/log/maillog