|
|
楼主 |
发表于 2015-7-7 21:52:01
|
显示全部楼层
1. 查询系统中transport_maps设置情况:
[root@ ~]# postconf transport_maps
transport_maps =
[root@ ~]#
如果像上面的输出,说明系统还没有配置transport map,那么就按下面的继续做,如果已经配置好,并且是配置transport_maps = hash:****,跳到第三步,将第三步涉及的文件名改为这里面的文件。
如果不是hash,就有点麻烦,比如mysql:****,那就需要去相应的数据库里改相应的记录了
2. 为postfix配置好transport map:
[root@ ~]# postconf -e 'transport_maps=hash:/etc/postfix/transport'
[root@ ~]#
[root@ ~]#
3. 输入第一步里面的查询命令,如果第二步设置成功,就会有如下输出:
[root@ ~]# postconf transport_maps
transport_maps = hash:/etc/postfix/transport
[root@ ~]#
4.接下来,我们来修改transport map文件。
告诉postfix,当收件人是 126.com/163.com/yeah.net的时候,发到我们专门的通道
cat >> /etc/postfix/transport <<EOF
126.com smtp:[mopen.126.com]
163.com smtp:[mopen.163.com]
yeah.net smtp:[mopen.yeah.net]
EOF
5. 我们第二步的配置是使用HASH数据格式,所以我们还需要将第四步做的改动,转成HASH数据格式
因为postfix最终只会读有组织过的数据,不会读文本文件的。
6. 执行命令postmap /etc/postfix/transport 来转换第四步的输入为HASH格式:
[root@ ~]# ls -l /etc/postfix/transport*
-rw-r--r-- 1 root root 12647 Dec 19 18:50 /etc/postfix/transport
[root@ ~]# postmap /etc/postfix/transport
[root@ ~]# ls -l /etc/postfix/transport*
-rw-r--r-- 1 root root 12647 Dec 19 18:50 /etc/postfix/transport
-rw-r--r-- 1 root root 12288 Dec 19 18:50 /etc/postfix/transport.db
[root@ ~]#
注意看前后ls的输出,命令执行后会有一个transport.db的文件,postfix就是读这个文件
7. 我们可以查询一下这个transport.db的内容是否与我们的配置相符合:
[root@ ~]# postmap -q 'yeah.net' /etc/postfix/transport
smtp:mopen.yeah.net
[root@ ~]# postmap -q '163.com' /etc/postfix/transport
smtp:mopen.163.com
[root@ ~]#
[root@ ~]# postmap -q '126.com' /etc/postfix/transport
smtp:mopen.126.com
[root@ ~]# postmap -q '188.com' /etc/postfix/transport
[root@ ~]#
注意看最后一行postmap命令,因为我在第四步的时候,没有配置188.com,所以是查不出结果的
8. 最后一步,就是让postfix生效transport map设置
postfix reload
9. 还没有完,一定要注意看maillog
tail -f /var/log/maillog | egrep '@126.com|@163.com|@yeah.net'
看看有没有类似下面的日志:
postfix/smtp[25367]: 3029053952FF: to=<***@126.com>, relay=mopen.126.com[220.181.15.120]:25, delay=
relay=mopen.126.com 表示邮件被relay到mopen.126.com去发送了。
10. 完成 |
|