如果我希望规则所基于的地址不是收件人,如何让 postfix 将收到的电子邮件转发到一个或多个不同的本地别名?我想要操作的地址来自转发的邮件。
具体如下:
在外部帐户上:
- 发往主账户的语音邮件将
123+voicemail@externaldomain
被递送至主myname@externaldomain
账户。(这将结合普通文本邮件和带有语音附件的邮件) - 所有邮件都转发到我的服务器使用
tonline@mydomain
在本地 postfix 服务器上:
现在我只想将最初发给的语音邮件转发给
123+voicemail@externaldomain
我的别名,voice@mydomain
这voice@myotherdomain
就是为什么我不能简单地使用 bcc_maps我
virtual_alias_maps
尝试过:使用
virtual_alias_maps
我可以重定向
voice@mydomain to myvoice@mydomain, myvoice@myotherdomain
,但这也包括普通邮件。因此我尝试了类似的规则,
123+voice@externaldomain voice@mydomain, voice@myotherdomain
但是它没有触发。
我使用第一次尝试的规则最终收到的示例邮件:
Return-Path: <123@externaldomain>
X-Original-To: voice@mydomain
Delivered-To: myvoice@mydomain
From: 456 <456@externaldomain>
To: 123+voice@externaldomain
Subject: Call from 456
答案1
由于您的决定完全取决于To
标题,因此您可以添加header_checks
#/etc/postfix/main.cf
# ...
# ...
header_checks = regexp:/etc/postfix/header.re
# ...
#/etc/postfix/header.re
/^To:(.*)123+voice@externaldomain/ REDIRECT [email protected]
答案2
我设法通过使用这样的筛选消息过滤器来解决这个问题:
require ["copy","fileinto","imap4flags"];
# rule:[VoiceMailForwarder]
if anyof (header :contains "to" "[email protected]", header
:contains "to" "[email protected]")
{
redirect :copy "[email protected]";
}
使用带有 managesieve 插件的 roundcube 可以轻松实现这一点。还为 thunderbird 提供了一个插件