我正在创建一个退回电子邮件系统,以便收件人可以在我的网站上回复消息。
然而,当包含前一条消息的电子邮件发送给用户时,该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
答案4
使用“发件人地址中包含特定单词”创建规则。它将接受多个单词作为“或”,但我不知道如何使用“和”来做到这一点。也许这已经足够了。