用于复制到达某个帐户别名的电子邮件的筛选器

用于复制到达某个帐户别名的电子邮件的筛选器

我的电子邮件提供商支持筛选语言(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;
}

相关内容