二、基本邮件服务器搭建
Postfix的安装与配置
■ 停止已经运行的MTA并使之失效。安装Postfix之前,请检查是否有其他MTA程序在运行,如果有则删除系统原有的MTA,或者停止原有的MTA,并禁止init.d下该MTA的启动脚本,避免重新引导的时候再次启动。操作如下:
[root@cecmail opt]# ps -ef | grep Sendmail
root  1919 1 0 May18 00:00:00 Sendmail: accepting connections
smmsp  1927 1 0 May18 00:00:00 Sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
root  9014 8835 0 22:14  pts/3 00:00:00 grep Sendmail
显示的信息说明系统正在运行Sendmail,可以直接删除Sendmail。操作如下:
#killall  sendmail
Sendmail: no process killed
[root@cecmail ]# rpm -e Sendmail --nodeps
■ 添加组用户。操作如下:
[root@cecmail opt]# groupadd Postfix
[root@cecmail opt]# groupadd postdrop
[root@cecmail opt]# cat /etc/group
mysql:x:500: www:x:501: luanzhaodong:x:502: Postfix:x:503: postdrop:x:504:
通过查看Group文件,可以判断添加组是否成功。
■ 添加Postfix用户。操作如下:
[root@cecmail opt]#useradd Postfix -g Postfix -c "Postfix user" -d /dev/null -s /sbin/nologin
[root@cecmail opt]#cat /etc/passwd mysql:x:500:500::/home/mysql:/bin/bash
www:x:501:501::/home/www:/bin/bash
Postfix:x:502:503:Postfix user:/dev/null:/sbin/nologin
通过查看passwd文件,可以判断添加用户是否成功。
■ 到Postfix官方网站http://www.postfix.org/)下载Postfix源码文件,并复制到服务器的某个目录下,比如,可以下载到/opt/postfix目录。操作如下:
[root@cecmail Postfix-2.6.5]# mkdir /opt/postfix/
[root@cecmail Postfix-2.6.5]# /opt/postfix/
[root@cecmail Postfix-2.6.5]# tar xzvf Postfix-2.6.5.tar.gz
■ 编译安装Postfix。操作如下:
[root@cecmail Postfix-2.6.5]# cd  Postfix-2.6.5
[root@cecmail Postfix-2.6.5]#make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_TLS -DUSE_SASL_AUTH -I/usr/include/sasl' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib -lssl -lcrypto -lsasl2'
查看Makefile文件是否成功生成。
[root@cecmail Postfix-2.6.5]# ls Makefile
Makefile
上面代码说明Makefile文件已经生成。可以进行编译及安装了。
[root@cecmail Postfix-2.6.5]# make
[root@cecmail Postfix-2.6.5]# make install
安装时系统会提示用户输入一些参数,比如队列文件的路径、户和组信息,但是,安装程序本身会提供默认的参数,一般情况下不需要手动修改这些默认参数,直接回车即可。这样,Postfix就成功安装完毕。 ■ 编辑main.cf
在启动Postfix之前,需要简单的配置一下Postfix。Postfix的主要配置文件是/etc/Postfix/main.cf,为了实现最简单功能,只需修改以下几个参数即可:
mydomain
该参数指明域名,在这里指定:
mydomain = cec-cn.com
myorigin
myorigin参数指明发件人所在的域名。如果用户的邮件地址为user@domain.com,则该参数指定@后面的域名。这个参数通常这样设置:
myorigin = $mydomain
mydestination
mydestination参数指定Postfix接收邮件时收件人的域名。简单地说,也就是Postfix系统要接收什么样的邮件,一般只希望接受发给自己这个域名的邮件,所以,通常mydestination与myorigin一样:
mydestination = $mydomain
mynetworks 该参数定义可以使用此SMTP服务器发信的客户IP地址,一般设置为本机,或者本公司IP段,比如:
mynetworks = 192.168.1.0/24
myhostname
myhostname参数用于描述运行C-Link系统的服务器所符合规则的域名全称。
可以在sh下运行命令查看域名:
[root@cecmail Postfix-2.6.5]# hostname Cecmail
本文按照下面内容来配置main.cf文件:
myhostname = cecmail
mydomain = cec-cn.com
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost,
$mydomain
mynetworks = 192.168.1.0/24, 127.0.0.0/8
■ 运行Postfix,操作如下:
[root@cecmail Postfix-2.6.5]#/opt/Postfix/Postfix-2.6.5/bin/Postfix start
Postfix/Postfix-script: starting the Postfix mail system
如果是安装的postfix的rpm包,则
#service postfix start
Starting postfix:[确定]
#service dovecot start
启动Dovecot Imap:[确定]
■ 测试MTA,操作如下:
[root@cecmail Postfix-2.6.5]# telnet localhost 25
Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 cecmail ESMTP Postfix (2.6.5)----说明连接成功
helo cec-cn.com                       #向服务器标识用户身份#
mail from:                            #标明发信人地址#
250 ok                               #命令执行成功#
rcpt to:                              #邮件投递地址 test2@cec-cn.com#
250 ok                              #命令执行成功#
data                                #数据传输初始化#
354 End data with .                    #开始传输数据 #
From: test1@aaa.com
To: test2@cec-cn.com
Subject: test mail
Hi, this is a test .                        #数据内容, 包括BASE64加密后的邮件内容, 以 CRLF.CRLF 结束数据传输#
250 OK: queued as 2F6DE3929              #命令执行成功#
Quit                                   #结束会话#
221 Bye Connection closed by foreign host.    #断开连接#
这样,Postfix就可以运行了。但是,Postfix到底是怎样处理邮件的呢?Postfix的各个模块如何对邮件处理流程产生作用呢?下面,本文就从Postfix的机制上分析这些问题。


相关内容