postfix 转发配置

 Postfix 转发服务器(192.168.0.188):

#填上被允许转发的主机IP 
mynetworks = 127.0.0.0/8 192.168.0.50

#允许转发的本地邮件列表

local_recipient_maps = hash:/etc/postfix/relay_recipients 

#允许转发的域名
relay_domains = domain.com

#允许转发的邮件列表
relay_recipient_maps = hash:/etc/postfix/relay_recipients 

#转发目的地

transport_maps = hash:/etc/postfix/transport 

[root@mail postfix]# cat relay_recipients 
@domain.com  ok

其中 ok为占为,格式需要

[root@mail postfix]# cat transport 
domain.cn relay:[192.168.0.50] 

 

最后对文件进行postmap操作,生成相应的xxx.db文件。

[root@mail postfix]# postmap relay_recipients 
[root@mail postfix]# postmap transport

 

 

 

 

其它一些参考:

     #客户端连接限制,只允许mynetworks定义的客户端连接并转发邮件
     smtpd_client_restrictions = permit_mynetworks, reject_unknown_client
     #垃圾邮件黑名单设置(参考mail-abuse.org/bl.spamcop.net/zen.spamhaus.org网站定义的垃圾邮件黑名单)
     map_rb1_domains=mail-abuse.org, bl.spamcop.net, zen.spamhaus.org
     smtp_client_restrictions=reject_map1_rb1
     #邮件Subject内容过滤
     header_checks = regexp:/etc/postfix/header_checks
     #postfix能累计客户端曾经发生错误的次数,对于可疑的客户端,postfix会主动延迟响应的时间
     #而且错误次数越多,延迟时间越长。这些都是通过下面的参数进行设置
     #参数说明:初次的延迟时间由smptd_error_sleep_time参数决定(默认1秒),当客户端累积了
     #smtpd_soft_error_limit次错误之后,往后每发生一次错误,postfix就多延迟1秒,当错误次数
     #超过smtpd_hard_error_limit时,postfix就放弃该客户端,并主动断线
     smtpd_error_sleep_time = 1s
     smtpd_soft_error_limit = 10
     smtpd_hard_error_limit = 20
  b) 创建/etc/postfix/transport文件,并生成db文件
      i) 内容: dgcn.com  relay:[mail202.dgcn.com]
     ii) 生成db文件:运行命令postmap /etc/postfix/transport
  c) 创建/etc/postfix/header_checks文件
     内容如下:
         /^Subject:.*((业.*务)|(网?.*赚.*钱?)|(税))*$/    REJECT
         /^Subject:.*(([报海].*关)|([财税].*务)|([发机税].*票)|(合.*作)|(客.*户))*$/      REJECT
         /^Subject:.*((商.*务)|(免.*费)|(生.*意)|(禁.*片)|(成.*人)|(商.*品)|(贸.*易)|(找工作真)|(送票上门)|(商务合作)|(票据代开))*$/      REJECT
         /^Subject:.*((管.*理)|(人.*才)|(经.*理)|(主.*管)|(会.*计)|(供.*求)|(求.*供)|(特.*价)|(价.*[格值])|(资.*[讯信]))*$/       REJECT
         /^Subject:.*((电.*机)|(课.*程)|(产.*品)|(展.*览)|(互.*利)|(朋.*友)|(什么时候过来)|(金耀才)|(破解)|(林先生))*$/   REJECT
         /^Subject:.*((为你避税)|(文件定稿)|(优惠代开)|(人才兴旺网))*$/   REJECT
    
 

    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:此处可以是任意字符串,因文件格式的需要,必须填写
       c) 生成数据库文件
           # postmap /etc/postfix/relay_recipients
     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所示的收件人邮箱互换即可

此条目发表在mail分类目录,贴了标签。将固定链接加入收藏夹。