Postfix虚拟域名:如何接受除两个以外的所有子域名?

假设我的Postfix服务器提供example.com ,我希望它接受example.com的所有子域的邮件,除了mail.example.comin.example.com

起初,我试过使用排除这两个子域的正则expression式

(?(?!mail|in).+\.example.com)

但它没有工作。 我不确定问题是否与正则expression式或Postfix的正则expression式引擎是否不支持条件,所以我决定尝试使用表文件的条件。 在这一点上,我的桌子看起来像这样:

/等/后缀/ virtual_domains:

 if !/(in|mail)\.example\.com/ /.+\.example\.com/ OK endif 

/etc/postfix/main.cf文件:

virtual_alias_domains = regexp:/etc/postfix/virtual_domains

但它也没有工作。 我究竟做错了什么?

main.cf改变这个:

 virtual_alias_domains = !/etc/postfix/not_these_domains.txt regexp:/etc/postfix/virtual_domains 

/etc/postfix/not_these_domains.txt

 in.example.com mail.example.com 

并保持/etc/postfix/virtual_domains简单:

 /.+@.+\.example\.com/ OK 

但是请注意 :这只适用于Postfix> 2.4

如果您的Postfix是使用PCRE支持构build的,请尝试使用负面外观:

 (?<!(mail|in)).+\.example\.com