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

ari*_*kfr 4 virtualization postfix regex domains

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

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

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

但它没有用。我不确定问题是否出在正则表达式上,或者 Postfix 的正则表达式引擎是否不支持条件,所以我决定尝试使用表文件的条件。此时我的表看起来像这样:

/etc/postfix/virtual_domains:

if !/(in|mail)\.example\.com/
/.+\.example\.com/ OK
endif
Run Code Online (Sandbox Code Playgroud)

/etc/postfix/main.cf:

virtual_alias_domains = regexp:/etc/postfix/virtual_domains

但它也没有奏效。我究竟做错了什么?

mai*_*ilq 5

将其更改为main.cf

virtual_alias_domains = !/etc/postfix/not_these_domains.txt regexp:/etc/postfix/virtual_domains
Run Code Online (Sandbox Code Playgroud)

/etc/postfix/not_these_domains.txt

in.example.com  mail.example.com
Run Code Online (Sandbox Code Playgroud)

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

/.+@.+\.example\.com/    OK
Run Code Online (Sandbox Code Playgroud)

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