部分catch-all的postfix-mysql regexp

时间:2014-04-24 11:46:07

标签: mysql regex postfix-mta

我只想在Postfix-mysql配置上制作部分全能的电子邮件。 我认为正则表达式存在问题。

我想将所有notify-*@domain.com发送至notify@domain.com

我使用以下电子邮件请求(字母和数字有效):

notify-([a-zA-Z0-9])@domain.com

但有时候,Postfix告诉我虚拟邮箱表中的User unknown。

这是我的Postfix配置

virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf,
mysql:/etc/postfix/mysql_virtual_alias_maps_regexp.cf,
mysql:/etc/postfix/mysql_alias_domain_maps.cf

/etc/postfix/mysql_virtual_alias_maps_regexp.cf

user = postfixadmin
password = XXXXXXXXXXXX
hosts = 127.0.0.1
dbname = postfixadmin
query = SELECT goto FROM alias WHERE '%s' REGEXP CONCAT('^',address,'$') AND     SUBSTRING(address,1,1) != '@' AND x_regexp = '1'

我认为问题在于电子邮件regexp,因为日志文件中没有错误,而且mysql数据库有更正的值。

1 个答案:

答案 0 :(得分:3)

我确定要完全理解您的问题,但如果您想选择以notify-开头的电子邮件,后跟任意数量的字母/数字,您需要使用:

notify-[a-zA-Z0-9]+@domain.com

[...]是一个字符类,它的意思是“一个字符,一个在列表中”。所以你需要允许重复+