项目环境:

一台server ip:192.168.1.100  一台mail ip:192.168.1.200    一台win7 ip:192.168.1.222

项目需求:

1:在DNS Master上搭建DNS,能够解析mail.sw.com

2:在Mail Server上部署邮件服务器,和webmail软件

3:在Win7上用网页浏览测试

实现步骤:

1:在DNS服务器的正向解析数据库文件中添加MX记录

[root@server named]# vim sw.com.zone 

$TTL    86400
@               IN SOA  sw.com.      root.sw.com. (2014062602  ; serial (d. adams)3H          ; refresh15M         ; retry1W          ; expiry1D )        ; minimumIN      NS        server.sw.com.IN      MX   5   mail.sw.com.
server    IN      A       192.168.1.1
mail     IN      A       192.168.1.100


[root@server named]# service named restart

2:在mail服务器上安装postfix程序,启动服务,设置为开机启动,备份主配置文件

[root@mail ~]# yum -y install postfix

[root@mail ~]# service postfix start

[root@mail ~]# chkconfig postfix on

[root@mail ~]# netstat -anptul | grep :25                                          //查看25端口被哪个邮件程序监听

tcp    0   0 127.0.0.1:25   0.0.0.0:*   LISTEN    4653/master            //正被postfixmaster监听

[root@mail ~]# cd /etc/postfix/                                                        

[root@mail postfix]# postconf -n > mail.txt                                    //postfix当前配置导出为简化版                        

[root@mail postfix]# cp  main.cf main.cf.bak                                //备份原配置文件

[root@mail postfix]# mv mail.txt main.cf                                      //用导出的简化配置替换原主文件                                  

3:安装sasl认证服务,启动服务并设为开机启动,然后生成认证配置文件

[root@mail ~]# yum install cyrus-sasl

[root@mail ~]# service saslauthd start

[root@mail ~]# chkconfig saslauthd on

[root@mail ~]# cp /usr/lib64/sasl2/smtp.conf /etc/sasl2/smtpd.conf   //从模板拷贝生成配置文件,然后生效

[root@mail ~]# service saslauthd restart

4:配置主配置文件

[root@mail postfix]# vim main.cf

 

 ...8 #inet_interfaces = localhost     //注释掉监听本地端口20 myhostname = mail.sw.com         //邮件服务器主机名21 mydomain = sw.com                //邮件服务器所在区域22 myorigin = $mydomain             //指定发件人DNS后缀            23 mydestination = $mydomain        //指定Postfix允许处理sw.com的邮件 24 home_mailbox = Maildir/      //邮箱类型为每用户每封邮件都单独存放在家目录的Maildir下25 mynetworks = 127.0.0.1       //设置只允许本机转发到外部区域26 smtpd_sasl_auth_enable = yes //启用SASL认证27 smtpd_sasl_security_options = noanonymous    //阻止匿名发信28 smtpd_recipient_restrictions =    //收件人过滤,下两行顶格有空格表示和本行其实是一行29  permit_mynetworks,permit_sasl_authenticated,   //允许mynetworks和通过sasl认证的用户31  reject_unauth_destination                      //拒绝向未授权的目标域发信


[root@mail ~]# service postfix restart

5:安装收信服务, 启动服务并设为开机启动

[root@mail ~]# yum -y install dovecot

[root@mail ~]# service dovecot start

[root@mail ~]# chkconfig dovecot on

6:安装webmail软件,编辑配置文件

[root@mail ~]# yum -y install squirrelmail

[root@mail ~]# vim /etc/squirrelmail/config.php 

 ...26 $squirrelmail_default_language = 'zh_CN';        //改成中文显示28 $domain                 = 'sw.com';              //域名29 $imapServerAddress      = '192.168.1.100';       //收信服务器地址...32 $smtpServerAddress      = '192.168.1.100';       //发信服务器地址...


[root@mail ~]# service httpd start

[root@mail ~]# chkconfig httpd on

7:在win7上用网页测试


wKioL1OsNlPwia3_AAFoOGzVyt0133.jpg


 

 

 wKiom1OsNoHA7TWJAAIPExQFyQU143.jpg

 

总结:postfix是目前linux上开源比较好用的邮件服务器,但默认情况下允许所有转发,很容易当成垃圾邮件的中转。本项目为了杜绝此现象,在邮件服务器上利用sasl程序做了本地用户认证控制,只允许经过服务器认证后的用户往外域发送邮件。

排错:1:linux默认25端口会被sendmail等其他邮件程序占用,请netstat看看当前25端口被哪个程序使用

           2:导出postfix简化配置时先要执行postfix -n > 文件  然后在备份原配置文件,要不然导出失败

           3:注意拼写检查,Maildir/ M大写,小写不生效