目前我有一个/etc/postfix/virtual
包含如下条目的文件:
[email protected] [email protected]
我希望能够转发[email protected]
至[email protected]
我该怎么做呢?
编辑: 我确实设置了
propagate_unmatched_extensions = canonical, virtual
和
recipient_delimeter = +
但仍然不断 Recipient address rejected: User unknown in local recipient table;
编辑二:我按照@Schot 的更新答案中的建议做了一些更改,并取得了一些进展;
现在我Recipient address rejected: User unknown in virtual alias table;
发送到[电子邮件保护]
发送至[电子邮件保护]修改前后均有效
编辑三:
Postfix 是版本2.3.3- 我没有单独的mail.warn
或mail.err
日志 - 只有/var/log/maillog
。以下是完整(匿名)片段:
編輯 IV:已更新至 postfix2.3.19没有运气。
編輯 V:这样做postconf -n
表明recipient_delimiter
拼写错误main.cf
以及以上并且分隔符根本没有被处理。
答案1
您当前的条目没有问题,您应该查看propagate_unmatched_extensions配置参数。检查它是否包含virtual
。
关于你的正则表达式不起作用,请参阅手册页虚拟(8):
虚拟(8)传送代理不允许在正则表达式查找表中使用正则表达式替换 $1 等,因为这会打开安全漏洞。
更新
我已经测试了您的配置,它对我来说是可行的。以下某个问题可能是原因:
- 虚拟域 (“foo.com”) 是否在 中列出
mydestination
?如果是,消除它。 - 虚拟域是否在 中列出
virtual_alias_domains
?如果没有,请添加。
附注:发送邮件至[电子邮件保护](没有 +delimiter)可以工作吗?
答案2
它recipient_delimiter
不是recipient_delimEter
答案3
出于安全预防措施,虚拟文件中不允许进行 $number 替换。http://www.postfix.org/PCRE_README.html