前 言
通常,一个域名都对应一个邮件服务器,但在一些时候,为了资源的活用,可以将多个域名应用于同一个邮件服务器。好多虚拟主机提供商也在用此功能提供虚拟主机用户对应的邮件服务。
当多个域名应用于同一个邮件服务器时,我们可以将这些域名指向邮件服务器的主域名(在Postfix中被设置的域名)。也就是说,通过这些虚拟域名(非主域名)发送到服务器的邮件,将被视作发送至主域名的邮件,而被邮件服务器接收。这个过程也同样可以精确到用户,比如发送到虚拟域名下的某个用户的邮件,可以被视作发送给邮件服务器上某个实际存在的用户,而被该用户接收。
以本站为例,目前有两个域名同时应用于本站所在的邮件服务器。它们分别为:digeast.no-ip.info 和 centospub.com 。在邮件服务器(Postfix)设置中 centospub.com 被设置为了主域名,digeast.no-ip.info 也指向邮件服务器,但在没有定义虚拟域名规则之前,它无法直接被应用于邮件服务器(具体表现就是:别人通过youruser@digeast.no-ip.info发送给你邮件会发送不成功)。但通过配置虚拟域名,可以实现,发送给user@digeast.no-ip.info的邮件 == user@centospub.com 。
前 言
[1] 对 Postfix 的虚拟域名相关选项进行配置。
[root@sample ~]# vi /etc/postfix/main.cf ← 编辑Postfix的配置文件,在文尾添加如下行:
virtual_alias_maps= hash:/etc/postfix/virtual ← 定义虚拟域名转送规则文件
[2] 定义虚拟域名转送规则。
[root@sample ~]# vi /etc/postfix/virtual ← 编辑Postfix的虚拟域名相关配置文件,在文尾添加如下行
digeast.no-ip.info anything
@digeast.no-ip.info @centospub.com
[root@sample ~]# postmap /etc/postfix/virtual ← 更新虚拟域名规则
以上一本站为例,定义规则:将发送至 user@digeast.no-ip.info 的邮件视作发送至 user@centospub.com 。
[3] 重新启动Postfix,使设置生效。
[root@sample ~]# /etc/rc.d/init.d/postfix restart
Shutting down postfix: [ OK ]
Starting postfix: [ OK ]
[4] 测试。
最后,发送测试邮件到虚拟域名(本站为digeast.no-ip.info,请根据你的实际情况设置),然后接收邮件,确认能够收到邮件。