我的电子邮件提供商支持筛选语言(RFC 5228) 在高级模式电子邮件过滤器,但是状态他们“无法就此问题提供更多支持”。我想使用 sieve 来改进我目前的电子邮件重定向策略。
什么是最小的筛选脚本,当一封电子邮件被发送到 ([email protected]
这是我的主电子邮件帐户的别名)时[email protected]
,它会被复制到[email protected]
(最好:除非从标题中可以检测到它[email protected]
已经是收件人)。
我可以几乎使用他们的基于 Web 的(非筛选)规则生成器,通过测试To:
或Cc:
字段是否为(或包含)来做到这一点[email protected]
。但是它并不可靠。特别是如果发送电子邮件(这不在我可以指定的字段中)或通过重定向到(我甚至不知道我可以测试哪个字段),它会失败。Bcc: [email protected]
[email protected]
此外,如果电子邮件被发送,我担心后者会收到两次电子邮件。To: [email protected]
Cc: [email protected]
更新:按照有用的评论,实验表明,在我通过 IMAP 在收件箱中收到的[email protected]
发送到其别名的邮件(甚至重定向到的邮件)中,有一些有用的内容被添加(在第二行)Bcc: [email protected]
Bcc: [email protected]
[email protected]
Delivered-To: [email protected]
因此,假设筛选脚本运行后生成该标题(我不知道是否是这种情况),可能是我需要一个最小的筛选脚本,以便电子邮件何时被复制到Delivered-To:
(最好:仅当既不包含也不包含时)[email protected]
[email protected]
To:
Cc:
[email protected]
我是一名经验丰富的程序员和邮政局长,因此我看到了“包含”中可能存在的陷阱。它不应该是字符串包含的意思,至少应该不区分大小写,并且仅适用于没有名字的电子邮件地址。我希望这个(我的第一个筛选脚本)尽可能规范。
答案1
我似乎通过以下内容获得了预期的效果。但我欢迎更正、简化或改进!
if allof (
header :is "Delivered-To" "[email protected]",
not address :is :all "to" "[email protected]",
not address :is :all "cc" "[email protected]"
) {
redirect "[email protected]";
keep;
}