我们正在尝试将所有电子邮件转发到特定的电子邮件地址。我认为一切都设置好了,例如“main.cf”和“virtual-regexp”文件。如果我们将以下内容放入“virtual”文件中,转发将正常工作:
@example.com [email protected]
但是,如果我们尝试在“虚拟”中使用以下内容将所有电子邮件发送到 ID,它会忽略它并将其发送给原始用户:
(.*) [email protected]
我们从以下内容中得到了上述想法问题和答案。
知道为什么模式 '(.*)' 不起作用吗?我们尝试了太多不同的模式,头都开始晕了。
答案1
如果您阅读了问题/答案,为什么要使用(.*)
这种表达方式?
您链接到的问题标记为正确的答案显然使用了正则表达式:
/.+@.+/
编辑:如果您出于某种原因不想真正阅读链接中的答案,我会将其复制/粘贴到这里给您。
终于找到答案了。
此处列出以供后人参考。
将以下行添加到 main.cf 文件末尾
vi /etc/postfix/main.cf virtual_maps = hash:/etc/postfix/virtual, regexp:/etc/postfix/virtual-regexp
创建一个文件,列出你希望所有邮件发送到的邮件地址
vi /etc/postfix/virtual-regexp
添加以下内容:
/.+@.+/ forwarding [email protected]
将其添加到 postmap
postmap /etc/postfix/virtual-regexp
您将需要添加一个虚拟文件。
touch /etc/postfix/virtual
现在将其添加到 postmap
postmap /etc/postfix/virtual
答案2
我解决了这个问题。
您需要完成上面列出的步骤。但是,此外,在重新启动 postfix 进程之前,您还需要在 main.cf 中注释掉以下行(如果有):
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_alias_domains = hash:/etc/postfix/virtual