源码编译Postfix-2.9.3构建邮件系统

1,搭建邮件系统之前,先介绍邮件系统的原理。邮件系统大致由以后五个部分组成

(1)MTA:mail transfer agent 邮件传输代理:在服务端与客户之前传输邮件。常用的软件postfix,sendmail

(2)MDA:mail delivery agent 邮件投递代理:将邮件投递到用户的邮箱里。常用的软件有procmail,maildrop

(3)MRA:mail retrieval agent邮件取回代理:从用户的邮箱里收取邮件。常用的软件dovecot。

(4)MUA: mail user agent 用户邮件代理,现在用得不多,已经出现webmail, 其实就是之前用的outlook,thunderbird。

(5)MSA:mail submission agent邮件提交代理:检查邮件安全性与垃圾等,处理额外的工作。

源码编译Postfix-2.9.3构建邮件系统

2,smtp会话建立的步骤:先进行tcp的三次会话,然后开始下面的步骤

(1)客户端:先发送helo询问对方在不在线

(2)服务端:如果在线则回应对方,回应信息为250的正常响信息

(3)客户端:告诉对方邮件的来源者是谁

(4)服务端:收到之后如果能发送,就回应对方正常响应信息,也是250的。否则就返回错误信息

(5)客户端:发送邮件接收者的地址

(6)服务端:回应对方可以发送

(7)客户端:通过data命令,开始写邮件,写完之后在单独的一行输入一个点结束

(8)服务端:回应对方,你的邮件已经接受,并发送。

(9)发送方:发送结束命令 quit,结束这个会话。

邮件改送完之后就开始tcp的四次会话断开。

源码编译Postfix-2.9.3构建邮件系统

3,上面简单了说明了邮件系统的组成与发送。下面编译postfix,并提供webmail的功能,那么此时就需要DNS,MYSQL,http,php因此先安装好这四个软件。此次实验基于RedHat 5.8。

(1)安装与配置DNS,用rpm安装的bind97,如果原系统有bind软件请先卸载。详细过程请参考前面DNS的博文。下面是我正向区域与反向区域里的记录,如果测试能够正常解析。

源码编译Postfix-2.9.3构建邮件系统
源码编译Postfix-2.9.3构建邮件系统

 

 

(2),安装与配置LAMP,请参考lamp博文,安装完之后启动服务

(4)下面开始编译postfix,postfix只能限于收发邮件,运行postfix软件必须是postfix 的普通用户,且postfix的uid必须大于1000以上,postdrop这个组只限于投递邮件。gid也是必须大于1000以上。因此先创建两个用户

useradd -u 2525 postfix  -s /sbin/nologin -M

useradd -u 2525 postdrop  -s /sbin/nologin -M

(5)解压postfix的源码之后,开始编译,postfix不用./configure,直接用make      makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl  -DUSE_TLS ' 'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2  -lssl -lcrypto'(CCARGS表示编译器gcc参数是有些,-DHAS_MYSQL表示启用postfix支持MYSQL的功能,AUX表示辅助的,LIBS表示库文件,AUXLIBS表示辅助的库文件,指定MYSQL库文件的路径,并查找mysqlclient的客户端,-lz启用压缩工具,-lm启用编码工具,sasl2的库文件,-lsasl2表示启用这个库,-lssl表示启用openssl加密,-lcrypto表示启用crypto库。mysql是自己用源码安装,因此并不是在/usr/lib/mysql下)

相关推荐