一.     电子邮件系统概述
1.     邮件系统角色
*    MUA(邮件用户代理)、MTA(邮件传输代理)、MDA(邮件分发代理
2.     邮件应用协议
*    SMTP,简单邮件传输协议,TCP 25端口
*    POP3,第3版邮局协议,TCP 110端口
*    IMAP4,第4版因特网消息访问协议,TCP 143端口
二.     常用的邮件服务器软件
1.     商业邮件系统
*     Exchange:微软公司的重量级产品,与Windows系列软件产品相集成,协作性较好
*     Notes/DominoIBM公司的商业电子邮件和办公协作软件产品,功能丰富、强大,提供跨平台支持
2.     开源邮件系统
*     Sendmail:资格最古老,运行稳定,但安全性欠佳
*     Qmail:有更好的执行效率,配置、管理也很方便
*     Postfix:兼容Sendmail,采用模块化设计,在投递效率、稳定性、服务性能及安全性方面表现优秀
三.     编译安装Postfix
1.     停用sendmail服务,以避免冲突
   [root@mail ~]# service sendmail stop
 chkconfig --level 35 sendmail off
2.     获得源码文件包
Ø 源程序包:postfix-2.4.6.tar.gz
Ø VDA补丁包:postfix-2.4.6-vda-ng.patch.gz
3.      添加运行邮件系统的帐号
*         用户帐号 postfix ,组帐号 postfixpostdrop
groupadd -g 1200 postdrop
 groupadd -g 1000 postfix
useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix
4.     解压释放源码包、合并VGA补丁
tar zxvf postfix-2.4.6.tar.gz
gunzip postfix-2.4.6-vda-ng.patch.gz
cd postfix-2.4.6
patch -p1 < ../postfix-2.4.6-vda-ng.patch
    注意:p后面的数字取决于你补丁包里的设置,跟微软的补丁类似
5. 预配置编译参数
*    注意参考 README_FILES 子目录中的说明文档
*    添加MySQL数据库查询、SASL认证支持
make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 '
6. 编译并完成安装
make && make install
四.     Postfix的主要目录
1.     配置文件目录:/etc/postfix/
2.     服务程序目录:/usr/libexec/postfix/
3.     邮件队列目录:/var/spool/postfix/*
a)       incomingactivedeferred
b)      holdcorrupt
4.     邮件管理程序目录:/usr/sbin/*
a)       postaliaspostmap
b)      postconfpostfix
c)       postqueuepostsuper
注意:
邮件队列子目录:
    1)incoming传入:刚接收到的邮件 2)active活动:正在投递的邮件 3)deferred推迟:以前投递失败的邮件
    4)hold约束:被阻止发送的邮件    5)corrupt错误:不可读或不可分析的邮件
主要的邮件管理程序(/usr/sbin/post*)
    1)postalias:用于构造、修改和查询别名表    2)postmap:用于构造、修改或者查询查询表
    3)postconf:用于显示和编辑main.cf配置文件    4)postfix:用于启动、停止postix,要求root用户权限
5)postqueue:用于管理邮件队列,一般用户使用    6)postsuper:用于管理邮件队列,要求有root用户权限
 
五.      Postfix的配置文件
1.     /etc/postfix/master.cf
master主程序的配置文件
2.     /etc/postfix/main.cf
a)   postfix服务的配置文件
3.     辅助配置工具 postconf
a)   执行 postconf ,查看当前的有效配置
b) 执行 postconf -n ,查看非默认配置
c)   执行 postconf -d ,查看默认配置
4.     Postfix的日志文件
1) /var/log/maillog
*    记录了postfix服务的邮件传递等过程信息
2) 常用分析方法
*    动态跟踪日志变化
 tail -f /var/log/maillog
*    关键词搜索
 egrep '(reject|warning|error|fatal|panic):' /var/log/maillog
5.     Postfix的控制启动
1) Postfix服务控制
*    使用/usr/sbin/postfix程序
*    常见控制参数:startstopreloadcheck
 如:postfix start/reload/check
                 构建简单电子邮件系统
一.           案例环境:
*    IP地址:173.17.17.11/24
*    主机名: mail.benet.com
*    邮件域:@benet.com
*    邮件帐号:使用本地系统用户
*    使用dovecot提供收信服务
二.           域名设置
*    需要在 benet.com 域的DNS服务器中注册,设置相应的A记录和MX记录
    @          IN      MX      5       mail.benet.com.
mail        IN      A       173.17.17.11
三.           构建postfix服务器
1.      修改 main.cf 配置文件,调整运行参数
编辑 /etc/postfix/main.cf
inet_interfaces = 173.17.17.11, 127.0.0.1      
myhostname = mail.benet.com            
mydomain = benet.com                  
myorigin = $mydomain 外发邮件时发件人地址中的邮件域名
mydestination = $mydomain, $myhostname允许投递到本地的邮件域名
home_mailbox = Maildir/ (Mailbox已淘汰)邮件存储位置和格式
2.     重新加载配置:postfix reload
3.     建立邮件帐号:xiaoqilisi
4.     SMTP发信测试:telnet localhost 25
telnet localhost 25
HELO localhost                                        
250 mail.benet.com
MAIL FROM: xiaoqi@benet.com            
250 2.1.0 Ok
RCPT TO: lisi@benet.com                     
250 2.1.5 Ok
……
DATA                                                       
354 End data with <CR><LF>.<CR><LF>
Subject: A Test Mail                               
HELLO!                                              
This is a test mail!
.
250 2.0.0 Ok: queued as 6F24D148440
QUIT                                                        
221 2.0.0 Bye
Connection closed by foreign host.
四.           构建dovecot服务器
1. 编译安装dovecot软件
*    下载源码包 dovecot-1.1.4.tar.gz
p 官方站点:http://www.dovecot.org
*    添加dovecot 运行用户
*    解包、配置、编译及安装
#useradd -M -s /sbin/nologin dovecot
#tar zxvf dovecot-1.1.4.tar.gz
#cd dovecot-1.1.4
#./configure --sysconfdir=/etc --with-mysql
#make && make install
2. 建立 dovecot.conf 配置文件
cp /etc/dovecot-example.conf /etc/dovecot.conf
[root@mail ~]# vi /etc/dovecot.conf
……
ssl_disable = yes禁用SSL机制
……
protocols = pop3 imap支持的邮局协议
……
disable_plaintext_auth = no允许明文密码认证
……
mail_location = maildir:~/Maildir邮件存储格式及位置
3. 创建PAM认证文件
vi /etc/pam.d/dovecot
auth       required     pam_nologin.so
auth       include      system-auth
account    include      system-auth
session    include      system-auth
4. 启动dovecot服务
# /usr/local/sbin/dovecot -c /etc/dovecot.conf
5. POP3收信测试:telnet localhost 110
[root@mail ~]# telnet localhost 110
Trying 127.0.0.1...
Connected to mail.localdomain (127.0.0.1).
Escape character is '^]'.
+OK Dovecot ready.
USER lisi
+OK
PASS 123456
+OK Logged in.
……
LIST
+OK 1 messages:
1 451
.
RETR 1
+OK 451 octets
Return-Path: <xiaoqi@benet.com>
X-Original-To: lisi@benet.com
Delivered-To: lisi@benet.com
Received: from mail.benet.com (mail.benet.com [127.0.0.1])
        by mail.benet.com (Postfix) with SMTP id 6F24D148440
 
五.           使用Outlook Express邮件客户端
设置电子邮件帐号,并进行收发信测试
*    设置邮件帐号为xiaoqi(不带@benet.com后缀)
*    SMTPPOP3服务器:mail.benet.com
六.           扩展Postfix邮件系统的功能
1.     添加Webmail邮件界面:编译安装squirrelmail程序套件
    tar jxvf squirrelmail-1.4.13.tar.bz2 -C /usr/local/apache2/htdocs/
cd /usr/local/apache2/htdocs/
mv squirrelmail-1.4.13 webmail
解压all_locales-1.5.1-20060219.tar ,然后拷贝locale目录里面的所有内容到/usr/local/apache2/htdocs/webmail/locale/里面。
2.     创建及调整数据目录、附件目录
cd   /usr/local/apache2/htdocs/webmail
mkdir -p attach data
chown -R daemon:daemon attach/ data/
[root@mail webmail]# chmod 730 attach/
3.     建立并调整 config.php <