Postfix 虚拟邮箱,全部接收,根据收件人地址仅将其中一部分转发到另一台服务器

Postfix 虚拟邮箱,全部接收,根据收件人地址仅将其中一部分转发到另一台服务器

我使用 Postfix 作为主 MX 服务器,连接到互联网。在 LAN 上我有 MS Exchange,无法通过互联网访问。

Postfix 适用于虚拟邮箱,Dovecot 适用于 POP3/IMAP 等。我正在使用 catch-all virtual_alias_maps- have @mydomain.cz->[电子邮件保护]

我想将特定收件人地址的邮件转发到 Exchange 服务器。通常使用 来完成transport_maps,但当我使用 catch-all 虚拟别名时,邮件会发送到[电子邮件保护]并且未用 处理transport_maps

是否可以transport_maps与 catch-all 一起使用virtual_alias_maps

Postfix 配置中有趣的部分:

transport_maps = mysql:/etc/postfix/mysql-virtual-transports.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_gid_maps = static:5000
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_transport = dovecot
virtual_uid_maps = static:5000

MySQL .cf 文件:

query = SELECT password FROM virtual_users WHERE email='%u' LIMIT 1
query = SELECT destination FROM virtual_aliases WHERE source='%s'
query = SELECT 1 FROM virtual_domains WHERE name='%s'
query = SELECT 1 FROM virtual_users WHERE email='%s'

table = transport
select_field = transport
where_field = domain
additional_conditions = and active = '1'

问题架构

相关内容