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

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

假设我的 Postfix 服务器为该域提供服务示例.com,我希望它接受 example.com 的所有子域的邮件,但mail.example.com在.example.com

起初我尝试使用排除这两个子域的正则表达式:

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

但它不起作用。我不确定问题是否出在正则表达式上,或者 Postfix 的正则表达式引擎是否不支持条件,所以我决定尝试使用表格文件的条件。此时我的表格如下所示:

在/etc/postfix/虚拟域中:

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

/etc/postfix/main.cf:

virtual_alias_domains = regexp:/etc/postfix/virtual_domains

但它也没有用。我做错了什么?

答案1

更改此内容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

答案2

如果你的 Postfix 是支持 PCRE 的,请尝试使用负向后视:

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

相关内容