虚拟文件中的模式后缀问题

虚拟文件中的模式后缀问题

我们正在尝试将所有电子邮件转发到特定的电子邮件地址。我认为一切都设置好了,例如“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

相关内容