这几天因为公司flash要求,要用到发e-mail所以要在服务器上要建立邮件服务器,所以这个任务当然是交给我了,本人因为是linux界中属于鸟类人物,当时接到任务时候有些渺茫,不用多说了,首先百度一下,搜了很多教程。开始动手装,因为教程中的linux版本与自己的版本不一样,但是大致上都差不多。我就照葫芦画瓢,几天下来,设置都差不多,但是总不成功。``有些郁闷呢。````后来发现与DNS也有关系,DNS 设置过很简单。。然后又先从DNS开始,``因为MAIL SERVER 与DNS SERVER 干系很紧密的。。所以,要先设置一台DNS 服务器,为了节省时间就把 DNS SERVER 和MAIL SERVER 装在了一台服务器上。``最后的最后 终于完成了。中途遇到很多麻烦的事,都被我一一解决了。。现在虽然完成了,但是还有一个问题没有解决,但是算不上E-mail的问题,所以我的工作是完成了。我的机器DNS 是内网的居然可以连接到外网。。我的域名并没有注册啊。。很奇怪,居然我的内网设置的 E-mail服务器可以 发送到外网   新浪啊。。网易啊 都发送成功~~迷茫。。。。不知道怎么回事。如果不注册。。。但是肯定的是,别人给我发不了。。。还没有实验。呵呵~~奇怪ing 下面是我的工作日志。。。。
     我的机器是 FC5 ,我安装 yum 然后我下载所有关联包
1.yum install Sendmail   bind-8.2   caching-nameserver   Sendmail-cf dovecot
  2[.确定上述安装正常,要设置好Mail Server必须先设置好DNS。首先修改/etc/named.conf   假设域名是ludy.com,局域网IP范围是:192.168.0.*,linux主机名是ludy.com,ludy.com主机IP地址是192.168.0.108
        a..修改/etc/named.conf 加入
           zone “ludy.com”{
       type master;
       file “named.ludy.com”;
       };
       zone “0.168.192.in-addr.arpa”{
       type master;
       file “named.192.168.0”;
       };
      b.创建区资源文件:
创建区资源文件/var/named/named.ludy.com 内容如下
         ;
         ; BIND data file for local loopback interface
         ;
         $TTL     604800
         $ORIGIN   ludy.com.
         @        IN       SOA      ludy.com. root.ludy.com. (
                                 2006080401       ; Serial
                                  604800          ; Refresh
                                   86400          ; Retry
                                 2419200          ; Expire
                                  604800 )        ; Negative Cache TTL
         ;
              IN       NS       ns
                  IN       MX       10        mail.ludy.com.
         @        IN       A        192.168.0.108
         ns        IN       A        192.168.0.108
         www     IN       A        192.168.0.108
         webserver        IN       CNAME    www
         mail     IN       A        192.168.0.108
     c..接下来创建该区的反向映射资源文件/var/named/named.192.168.0内容如下:
      ;
         ; BIND reverse data file for local loopback interface
         ;
         $TTL     604800
         @        IN       SOA      ludy.com. root.ludy.com. (
                                 2006080401       ; Serial
                                  604800          ; Refresh
                                   86400          ; Retry
                                 2419200          ; Expire
                                  604800 )        ; Negative Cache TTL
         ;
         @        IN       NS       ludy.com.
         108       IN       PTR      mail.ludy.com.
         108       IN       PTR      www.ludy.com.
         108       IN       PTR      ns.ludy.com.  
      d..重启DNS服务
     /etc/init.d/named restart
    
    e.在客户机上的设置
      # cat /etc/resolv.conf
         search ludy.com
        nameserver 192.168.0.108
     f.用nslookup测试
     [root@ludy named]# nslookup
       > set type=any
       > ludy.com
      Server:          192.168.0.108
      Address:         192.168.0.108#53
   ludy.com
             origin = ludy.com
             mail addr = root.ludy.com
             serial = 2006080401
             refresh = 604800
             retry = 86400
             expire = 2419200
             minimum = 604800
      ludy.com         nameserver = ns.ludy.com.
      ludy.com         mail exchanger = 10 mail.ludy.com.
      Name:    ludy.com
      Address: 192.168.0.108
      说明测试成功`
     DNS安装成功
  3.修改/etc/mail/hocal-hosts-name文件
    增加本地域和主机的FQDN,记住只是本地主机的FQDN和域名FQDN,不要添加其他域的,否则向外域发送邮件的时候会出现user unknown的错误
[root@ludy named]# cat /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
mail.ludy.com
ludy.com
   4.更改/etc/mail/sendmail.mc文件,修改下列地方:
    Daem=smtp,Addr=127.0.0.1, Name=MTA 更改为:
Daem=smtp,Addr=yourip或者0.0.0.0, Name=MTA
然后m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
   5.用户管理
认证的配置:修改/etc/mail/sendmail.mc中的字段,
取消“TRUST_AUTH_MECH”一行和下一行“define”处的注释。
然后m4 /etc/ mail/sendmail.mc>/etc/mail/sendmail.cf。
[root@ludy named]# chkconfig --list saslauthd 开启认证
saslauthd        0:关闭   1:关闭   2:关闭   3:启用   4:关闭   5:启用   6:关闭
[root@ludy named]# chkconfig --level 35 saslauthd on
建立用户帐号
[root@ludy named]# groupadd mailuser
[root@ludy named]# adduser -g mailuser -s /sbin/nologin mike
[root@ludy named]# adduser -g mailuser -s /sbin/nologin john
[root@ludy named]# passwd mike
[root@ludy named]# passwd john 密码都是123
设置邮件别名和邮件群发
修改/etc/aliases文件实现邮件转发和邮件列表:
admin: mike 为邮件用户mike设置别名admin
testgroup: mike,john 实现群发 发给testgroup的邮件发给mike 和 john 以上2个可以分别测试
  6.访问控制设置
     更改/etc/mail/accesss文件,增加
Connect:ludy.com                         RELAY
完成后makemap hash /etc/mail/access.db < /etc/mail/access进行数据库更新。
  7.启动sendmail服务
        /etc/init.d/sendmail start
       然后测试[root@ludy named]# telnet 192.168.0.108   25
               Trying 192.168.0.108...
               Connected to mail.ludy.com (192.168.0.108).
               Escape character is '^]'.
         220 ludy.com ESMTP Sendmail 8.13.8/8.13.8; Tue, 21 Aug 2007 09:38:15 +0800
              ehlo ludy.com
              250-ludy.com Hello www.ludy.com [192.168.0.108], pleased to meet you
              250-ENHANCEDSTATUSCODES
              250-PIPELINING
              250-8BITMIME
              250-SIZE
              250-DSN
              250-ETRN
              250-AUTH LOGIN PLAIN---认证应该生效
         250-DELIVERBY
              250 HELP
   8.开启POP3端口
    修改/etc/dovecot.conf
        取消在protocols = imap imaps pop3 pop3s 前的#注释。
        然后启动dovecot服务
        [root@ludy named]# /etc/init.d/dovecot restart
        停止 Dovecot Imap:                                         [失败]
         启动 Dovecot Imap:                                         [确定]
         [root@ludy named]# chkconfig --level 35 dovecot on
   9.然后修改防火墙设置
        修改/etc/sysconfig/iptables加入
       -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
       -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
   然后重启放火墙    /etc/init.d/iptables restart
    10.修改selinux设置
         修改/etc/sysconfig/selinux
         SELINUXTYPE=targeted 把SELINUX设定为disable
         重启/etc/init.d/selinux restart