Postfix + mysql:virtual_users与virtual_aliases中的catch-all结合在一起

我有一个运行的Postfix(和Dovecot)服务器,使用MySQL来定义域名,用户和别名。 这一切都运行良好,但现在我想添加一个全面的一个域,我已经有一些用户定义。 我在virtual_users表中添加了用户,当我可以连接到它并发送邮件时,发送给它的所有电子邮件都被catch-all捕获。 有没有办法解决这个问题?

相关configuration文件和详细信息:

/etc/postfix/main.cf文件:

virtual_transport = lmtp:unix:private/dovecot-lmtp virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf local_recipient_maps = $virtual_mailbox_maps 

mysql虚拟用户表:

 +----+-----------+--------------+------------------------+ | id | domain_id | password | email | +----+-----------+--------------+------------------------+ | 2 | 1 | passwordhash | [email protected] | +----+-----------+--------------+------------------------+ 

mysql虚拟别名表:

 +----+-----------+------------------------+-------------------------------+ | id | domain_id | source | destination | +----+-----------+------------------------+-------------------------------+ | 2 | 1 | @example.com | [email protected] | +----+-----------+------------------------+-------------------------------+ 

默认情况下,postfix总是virtual_alias_maps查找。 因此,它总是覆盖另一个地图中的另一个条目(例如: alias_mapsvirtual_mailbox_maps )。 所以我们需要排除在virtual_mailbox_maps定义的电子邮件地址。

为了排除它,我们需要在main.cf中为virtual_alias_maps创build新的mysql映射

 virtual_alias_maps = mysql:/etc/postfix/mailbox.cf, mysql:/etc/postfix/mysql-virtual-alias-maps.cf 

然后在mailbox.cf中定义查询

 SELECT email from VIRTUALUSERTABLE WHERE email = %s 

而已。 您需要查询,以便result = key查找。 发生这种情况后,postfix将不会将电子邮件混淆为catchall用户。

参考: 后缀教程

我发现这个search与我们的系统类似的问题。 添加mailbox.cf对我们不起作用,因为它绕过任何转发到同一个域的邮箱。 如果您需要转发到相同域中的邮箱,并且需要将源地址和目标地址添加到虚拟别名表中。

例如,在上面的问题中,如果您将[email protected]转发到[email protected],则[email protected]将不会看到该电子邮件。 它只会到达[email protected]

“更具体的别名优先于一般的混淆别名。” 请参阅: https : //workaround.org/book/export/html/376

像这样为相同的域设置其他转发,而不是添加mailbox.cf:

 +----+-----------+------------------------+-------------------------------+ | id | domain_id | source | destination | +----+-----------+------------------------+-------------------------------+ | 1 | 1 | [email protected] | [email protected] | | 2 | 1 | [email protected] | [email protected] | +----+-----------+------------------------+-------------------------------+