邮件系统的选型与架构专题(上篇)(8)
来源:asp之家 时间:2010-03-12 18:31:00
3.创建邮件防火墙
邮件防火墙是一台专用的邮件服务器,专门转发发往内部邮件服务器和从其发出的邮件。经过配置,邮件防火墙将接收任何发往域中的邮件,将它们直接发给内部网络中真正的域邮件服务器。同时,邮件防火墙也转发从内部邮件服务器发往互联网的邮件。
邮件防火墙的配置是一个高级应用,Qmail邮件防火墙是使用一张虚拟表来映射地址。通过三个步骤对它进行配置:
(1)在virtualdomains控制文件中增加域名映射,接收指定域用户的邮件映射到一个真实的用户账号。如virtualdomains文件内容为virtual.com:mymail,则Qmail将会把所有发往*@virtual.com的邮件转换为mymail-*@virtual.com,然后在本地发送该邮件。
(2)将域名加入rcpthosts控制文件中,使用Qmail接收发往该域的邮件,如virtual.com。(3)为每个域用户创建一个独立的本地用户,使用各自独立的.qmail文件。
具体的邮件收发流程为,virtualdomain控制文件将virtual.com域指向一个普通的本地用户账号mymail,Qmail防火墙服务器收到的邮件将被发给本地账号mymail,比如test1@virtual.com对应mymail-test1,test2@virtual.com对应mymail-test2。然后,在mymail本地账号目录下建立对应的.qmail文件,例如.qmail-test1的内容为test1@trueserver.com,.qmail-test2的内容为test2@trueserver.com,这样就可以收取邮件了。
至于从内部邮件服务器上发送邮件,必须配置Qmail把所有外发邮件发给邮件防火墙服务器(firewall.virtual.com)。不同的是,Qmail需要使用外部程序来完成配置。serialmail软件包含了一些Qmail可以使用的工具程序,其中之一是maildirsmtp程序。下载、编译并安装此软件,配置内部邮件服务器的virtualdomains控制文件,把所有外发的邮件都交给一个普通用户账号firewall。不指明域名时,Qmail会把所有不是发给本地用户的邮件都发给这个firewall本地用户。命令如下:
然后,将maildirsmtp命令写入crontab任务中,定时转发邮件给邮件防火墙: