我只想在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数据库有更正的值。
答案 0 :(得分:3)
我确定要完全理解您的问题,但如果您想选择以notify-
开头的电子邮件,后跟任意数量的字母/数字,您需要使用:
notify-[a-zA-Z0-9]+@domain.com
[...]
是一个字符类,它的意思是“一个字符,一个在列表中”。所以你需要允许重复+
。