使用 postfix 将通配符电子邮件重定向到一封电子邮件

使用 postfix 将通配符电子邮件重定向到一封电子邮件

我正在创建一个退回电子邮件系统,以便收件人可以在我的网站上回复消息。

然而,当包含前一条消息的电子邮件发送给用户时,该Reply-To字段包含这样的地址[email protected](末尾包含 ID)。

如果用户回复,回复消息会被发回给[email protected]除了 之外的没有自己邮箱的邮箱[email protected]

我该如何将所有来自特定通配符的传入消息重定向notification-message-*@mysite.com[email protected]?我做了一些研究,但没有可靠的部分起作用,包括和 放入后缀别名表中,有一个 Maildir,所以邮件会进入它。luser_relay = [email protected]notification-message-*notification@

概念图:

在此处输入图片描述

我正在使用 Ubuntu 11.04。

答案1

我倾向于使用recipient_delimiter

如果您不介意使用稍微不同的Reply-To地址,您可以设置:

recipient_delimiter = +

在您的配置中,然后邮件到例如[email protected](注意+)将被传递给用户notification(假设没有更具体的规则/用户匹配notification+message-988742)。

可以尝试设置recipient_delimiter = -(以便您可以使用Reply-To问题中的标题),但我不确定它如何处理左侧分隔符的多个实例,并且我手边没有后缀可以检查。

答案2

正如 mschuett 所说,你可以使用正则表达式

首先检查 postfix 是否支持正则表达式:

root @ mail / #  postconf -m | grep regexp
regexp

创建文件 /etc/postfix/aliases-regexp 并将你的正则表达式添加到其中

root @ mail / #  cat /etc/postfix/aliases-regexp
/notification-message-[0-9]+@example\.net/ [email protected]

运行 postmap 并检查其是否有效:

root @ mail / #  postmap /etc/postfix/aliases-regexp
root @ mail / #  postmap -q [email protected] regexp:/etc/postfix/aliases-regexp
[email protected]

如果一切正常,请将此文件添加到您的别名数据库

例子:

root @ mail / #  cat /etc/postfix/main.cf | grep ^alias_maps
alias_maps = hash:/etc/aliases regexp:/etc/postfix/aliases-regexp

如果您使用虚拟域,请将此文件添加到您的 virtual_alias_maps

例子:

root @ mail / #  cat /etc/postfix/main.cf | grep ^virtual_alias_maps
virtual_alias_maps = mysql:/etc/postfix/mysql/alias.conf regexp:/etc/postfix/aliases-regexp

不要忘记重新启动 postfix。

祝你好运!

答案3

别名地图(虚拟的当地的, ...) 将与正则表达式表格式。但是如果你已经在 PCRE 中编译,那么你也可以使用 pcre_table 格式。

否则,您应该搜索更贪婪一些的“Postfix catch-all”。

答案4

使用“发件人地址中包含特定单词”创建规则。它将接受多个单词作为“或”,但我不知道如何使用“和”来做到这一点。也许这已经足够了。

相关内容