我使用 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'