使用mysql在postfix中配置catch-all别名

时间:2014-05-17 15:51:11

标签: postfix-mta

似乎我的所有别名都不起作用。 当我使用

postmap -q test@example.org mysql:/etc/postfix/mysql-virtual-alias-maps.cf

没有输出。 但是当我命令

 postmap -q jack@example.org mysql:/etc/postfix/mysql-virtual-alias-maps.cf

输出

 john@example.org. 

我该如何解决这个问题?

配置查询是:

query= SELECT destination FROM virtual_aliases WHERE source='%s'

表virtual_aliases:

id  domain_id   source             destination
5   1           @example.org        john@example.org
7   1           john@example.org    john@example.org
8   1           jack@example.org    john@example.org

表virtual_domains:

id  name
1   example.org

表virtual_users:

id  domain_id   password    email
1   1           pwd         john@example.org

1 个答案:

答案 0 :(得分:2)

您的mysql查询应

SELECT destination FROM virtual_aliases WHERE source='%s' 
UNION ALL  
SELECT destination FROM virtual_aliases WHERE source='@%d' 
AND NOT EXISTS (SELECT destination FROM virtual_aliases WHERE source='%s')