Chinaunix首页 | 论坛 | 博客
  • 博客访问: 54664
  • 博文数量: 65
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 365
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-06 10:38
文章分类
文章存档

2015年(65)

我的朋友

分类: LINUX

2015-01-27 11:30:40

postfix搭建纯邮件转发

   1)安装

       aptitude install 9 dnsutils

   2) 配置dns

     a) named.conf.local

      zone "test.com"{

          type master;

      file "/etc/bind/test.com";

      };

     

     b) dgnc.om

       $TTL 604800

       @ IN SOA @ 203.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可转发外部网络发给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:

              250 2.1.0 Ok

              rt to:

              250 2.1.5 Ok

              data

              354 End data with .

              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所示的发件人和t to所示的收件人邮箱互换即可                

     6) 发现问题

           如在测试过程中发现测试不成功 ,不能正常收到邮件,或者是测试过程中,你想查看整个测试过程,你可以查看postfix的发送或接收邮件的log信息

           log所在位置:/var/log/mail.info或/var/log/mail.log

 

  • 本文来自:
阅读(407) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~