我设置了一个 postfix 邮件服务器并映射到服务器上的不同 UNIX 帐户。我希望能够接受发送到 中定义的特定地址的邮件/etc/postfix/valias
并路由到映射的 UNIX 帐户,除非它不作为别名存在,然后转到catchall
UNIX 用户邮箱。
我一直在尝试使用正则表达式来完成此任务,但它仍然不起作用。无论现有规则如何,所有内容都将被路由到包罗万象的帐户。
/etc/postfix/valias
[email protected] unix_acct1
[email protected] unix_acct2
/[email protected]$/ unix_acct1
/^.*@example.com$/ catchall_unix_acct
似乎正确通过的 postmap 测试结果
postmap -q "[email protected]" regexp:/etc/postfix/valias
postmap: warning: regexp map /etc/postfix/valias, line 1: ignoring unrecognized request
postmap: warning: regexp map /etc/postfix/valias, line 2: ignoring unrecognized request
unix_acct
域中不存在的电子邮件别名
postmap -q "[email protected]" regexp:/etc/postfix/valias
postmap: warning: regexp map /etc/postfix/valias, line 1: ignoring unrecognized request
postmap: warning: regexp map /etc/postfix/valias, line 2: ignoring unrecognized request
catchall_unix_acct
当我将电子邮件发送到定义为 valias 或未定义为 valias 的任何地址时,除非我将其取出,否则它们最终都会出现在 catchall_unix_acct 中。如前所述,如果发送到的地址未设置为别名,我只希望包罗万象的别名能够接收邮件。为了完成这个任务我缺少什么吗?
谢谢!
答案1
您有 2 个步骤要做
修改/etc/postfix/main.cf
并追加此行
virtual_alias_maps = regexp:/etc/postfix/valias
我的文件/etc/postfix/valias
/^[email protected]$/ debian
/^user1(\+.*)[email protected]$/ ubuntu$1
/^user2(\+.*)[email protected]$/ debian$1
/^.*@example.com$/ root
第 2 行和第 3 行的地址允许加号扩展。