• postfix搭建纯邮件转发服务器


    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

  • 相关阅读:
    Linux目录管理常用指令
    生成器
    Python上的MVC和MVT理解,请求头,请求体,请求行的理解
    sellect、poll、epoll
    冒泡法排序
    (android / IOS)
    发现一个bug如何定位是前端还是后台问题?
    ANR----以及如何定位是前端问题还是后台问题?
    给你一个web端项目你如何展开测试?
    给你一个app你如何展开测试?
  • 原文地址:https://www.cnblogs.com/www886/p/4252390.html
Copyright © 2020-2023  润新知