知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

postfix搭建纯邮件转发服务器

发布时间:2014-09-05 14:53:13作者:知识屋

postfix搭建纯邮件转发服务器
 
   1)安装dns
       aptitude install bind9 dnsutils
   2) 配置dns
     a) named.conf.local
      zone "test.com"{
          type master;
      file "/etc/bind/test.com";
      };
     
     b) dgnc.om
       $TTL 604800
       @ IN SOA @ mail203.local.(
        20130305
        604800 
        86400  
        2419200 
        604800) 
       @ IN  NS  192.168.1.203.
         MX  0 mail203 
       mail203 IN A 192.168.1.203
       mail202 IN A 192.168.1.202
   3) 配置postfix
       a) /etc/postfix/main.cf
            mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.202 <<============192.168.1.202设置可通过postfix发送邮件的客户端IP或IP段
            relay_domains = test.com <<================设置postfix可帮忙转发哪些向内发送的邮件,此处表示postfix可转发外部网络发给test.com网域邮箱的邮件
            transport_maps = hash:/etc/postfix/transport  <<=================设置postfix转发某网域邮件(如:test.com)的目的地文件
       b) 创建/etc/postfix/transport文件
         内容: test.com  relay:[mail202.test.com]  <<=====================mail202.test.com表示postfix转发邮件给内部网络的SMTP服务器所在主机名称
       c) 生成transport对应数据库文件transport.db
         命令: postmap /etc/postfix/transport
    4) 垃圾邮件过滤
       根据如上设置,postfix可接收并转发test.com网域的所有邮件,但postfix并不知道test.com网域有哪些收件人,这样就会导致postfix收下许多无效的test.com网域邮件,最终无法转发而积压,最终导致postfix崩溃
       解决办法:将test.com网域的所有有效邮箱同步到postfix,以便postfix能及时判断收到test.com网域邮件的有效性
       a) 修改/etc/postfix/main.cf
          添加:relay_recipient_maps = hash:/etc/postfix/relay_recipients
       b) 创建/etc/postfix/relay_recipients
          # touch /etc/postfix/relay_recipients
          文件内容:
          admin@test.com  OK  
          说明:admin@test.com: 表示test.com网域的有效邮箱
               OK:此处可以是任意字符串,因文件格式的需要,必须填写
     5) 测试:
        a) 外发邮件:
              根据上面mynetworks设置,postfix只能转发postfix所在主机或192.168.1.202主机的邮件,现在假设登录postfix所在主机,粗体部分是需要我们手动输入的内容
              测试步骤如下:
              telnet  localhost 25
              Trying 192.168.1.202...
              Connected to 192.168.1.202 (192.168.1.202).
              Escape character is '^]'.
              220 localhost.localdomain ESMTP Postfix
              helo test.com
              250 localhost.localdomain
              mail from:<test@test.com>
              250 2.1.0 Ok
              rcpt to:<zzban@126.com>
              250 2.1.5 Ok
              data
              354 End data with <CR><LF>.<CR><LF>
              Subject: this is a test mail
              This is test mail content
              .       (注意此处的点".",表示邮件内容的结束标记)
             250 2.0.0 Ok: queued as 88B3B2A68032
             quit
             221 2.0.0 Bye
             Connection closed by foreign host.
             这样邮件就发送出去了,你可以登录你的收件邮件看看有没有收到邮件。如果收到邮件,表示一切正常,结束。
          b) 内发邮件
                步骤同上,只需将mail from所示的发件人和rcpt to所示的收件人邮箱互换即可                
     6) 发现问题
           如在测试过程中发现测试不成功 ,不能正常收到邮件,或者是测试过程中,你想查看整个测试过程,你可以查看postfix的发送或接收邮件的log信息
           log所在位置:/var/log/mail.info或/var/log/mail.log
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜