构建 sendmail 邮件服务器
一. 实验环境
1. 系统安装
邮件服务器安装 red hat 5( 企业版 )
客户端 PC1 windows 2003
客户端 PC2 windows 7
2. 基本网络配置
邮件服务器 IP 地址 172.16.100.150 ,主机名 mail.lwb.com
客户端 PC1:IP 地址 172.16.100.122,DNS 服务器 : 172.16.100.150
PC2:IP 地址 172.16.100.130 DNS 服务器: 172.16.100.150
3. 邮件域
126.com
二. 实验目的
保证客户端能够通过邮件域 126.com 正常收发邮件
三.实验思路
      1. 配置 DNS
      2. 配置 sendmail
           3. 启用 SMTP 用户认证功能
      4. 配置 dovecot
      5. 配置 webmail 邮件页面
      6. 客户端收发邮件测试
三.实验步骤
1. 对邮件域 126.com DNS 记录
1.1 修改全局配置文件 ( 确保下面四项的 {} 内都为 any)
vi /etc/named/chroot/etc/named.caching-nameserver.conf

listen-on port 53 { any; };
allow-query     { any; };
match-clients      { any; };
match-destinations { any; };
1.2 修改区域配置文件,添加我们需要的邮件域区域
vi   /etc/named/chroot/etc/ named.rfc1912.zones

zone "126.com" {
        type master;
        file "126.com";
};
 
zone "100.16.172.in-addr.arpa" {   
        type master;
        file "172.16.100.fx";
};
1.3 创建区域数据库文件(可以从模板 named.local 拷贝一个然后进行适当修改)
vi /etc/named/chroot/var/named/126.com 添加以下两条记录

mail   IN      A       172.16.100.150
126.com.        IN      MX      10      mail
vi /etc/named/chroot/var/named/172.16.100.fx
添加以下两条记录

147     IN      PTR     126.com.
1.4 更改权限

cd /var/named/chroot/var/named/
bind-chroot-admin -s
1.5 重启 named 服务,并设置为开机自动启动。

service named restart
chkconfig –level 35 named on
1.6 客户端测试 DNS 解析
2. 配置 sendmail 服务器
2.1 查看 sendmail 软件包是否安装,默认已经安装

[root@mail ~]# rpm -qa|grep sendmail
sendmail-8.13.8-2.el5
sendmail-cf-8.13.8-2.el5
2.2 修改 sendmail.mc 文件

dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
// 去掉上面两行前面的 dnl, 修改后为
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
// 修改该行中的 127.0.0.1 0.0.0.0
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
2.3 执行如下命令(如果提示某某文件不存在或者其它问题,很有可能是 sendmail-cf 包默认未安装)

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
2.4 添加需要的邮件域名
vi /etc/mail/ local-host-names
添加下面一行,每个邮件域一行

126.com
2.5 重启 sendmail 服务

service sendmail restart
chkconfig –level 35 sendmail on
3. 启用 SMTP 用户认证功能

service saslauthd restart
4. 配置 dovecot 服务器
4.1 安装 dovecot 软件包,默认存在依赖关系,可通过 yum 方式进行安装。
4.2 修改 /etc/dovecot.conf 配置文件

#protocols = imap imaps pop3 pop3s
// 将该行修改为如下即可
protocols = imap  pop3
4.3 重启 dovecot 服务

service dovecot restart
5. 设置 webmail 邮件页面
5.1 安装 squirrelmail httpd 软件包,安装存在依赖关系,使用 YUM 方式安装,可同时安装好这两个软件包
5.2. 创建及调整数据目录、附加目录 ( 如果没有特殊需求也可不做此步,以及第 3 步的最后两项也不用更改,使用默认值 )

[root@mail ~]# cd /var/www/html/mail/
[root@mail mail]#mkdir attach data
[root@mail mail]#chown –R daemon.daemon attach data
[root@mail mail]#chmod 730 attach
5.3 修改 comfig.php 配置文件

[root@mail ~]# ln -s /usr/share/squirrelmail/  /var/www/html/mail
[root@mail ~]# cd /var/www/html/mail/config/
[root@mail config]# vi config.php
$squirrelmail_default_language = 'zh_CN';
$default_charset          = 'zh_CN.UTF-8';
$domain                 = '126.com';
$smtpServerAddress      = 'localhost';
$smtpPort               = 25;
$imap_server_type        = 'dovecot';
$imapPort               = 143;
$data_dir                = '/var/www/html/mail/data/';
$p_w_upload_dir          = '/var/www/html/mail/attach/';
    确保以上各项均为×××部分内容
5.4 启动 httpd 服务

service httpd restart                                       
chkconfig --level 35 httpd on
5.5 访问 http://172.16.100.150/webmail, 查看 web 页面,如果对主机名所在域做了 DNS ,也可使用 http://mail.lwb.com/webmail
进入邮箱管理界面, 3 个词含义如下:
Ø       Drafts :草稿箱
Ø       Sent :发件箱,所有发出的邮件都会有记录
Ø       Trash :垃圾箱
6. 客户端收发邮件测试
6.1 添加两个邮件用户 lili,xixi 进行邮件收发测试

adduser -s /sbin/nologin haha;passwd haha
adduser -s /sbin/nologin hehe;passwd hehe
6.2 客户端 PC1 PC2 都使用邮件域 126.com 收发邮件
PC1 使用 windows 自带的邮件客户端 OE ,使用邮件用户 xixi
PC2 使用 office 2003 套件中的 Outlook 2003 客户端 ( 配置时,电子邮件账户服务器类型可以选择 POP3 或者 IMAP), 使用邮件用户 lili
PC2 lili PC2 xixi 发送
6.3 使用 webmail 页面登陆进行验证
用户 lili xixi 发邮件——成功
用户 xixi lili 发邮件——成功
 
实验分析和总结:
如果出现收发邮件不成功,可能是以下原因:
Ø       未在在 /etc/mail/local-host-names 文件中添加邮件域
Ø       查看端口 25 110 143 是否正常