用于发送邮件的 Sievie - dovecot

用于发送邮件的 Sievie - dovecot

我需要创建一个外发邮件过滤器。如果“收件人”包含指定的电子邮件地址,则复制邮件。我有:

# rule:[Copy to slack]
if address :contains "to" "[email protected]"
{
    redirect :copy "[email protected]";
}

我尝试

# rule:[Copy to slack]
if address :contains "to" "[email protected]"
{
    redirect :copy "[email protected]";
}

或者

# rule:[Copy to ]
if address :contains "to" "[email protected]"
{
      fileinto "INBOX.Redmine";
}

但每次过滤器都不起作用。

这仅当我从“收件人”或其他本地邮件中的地址发送时才有效。

有任何想法吗?

答案1

它不起作用,因为它不能以这种方式工作:如果您正在发送邮件,您会将其直接发送到端口 465 到 Postfix - 不会执行任何 Sieve 脚本。

如果您想使用筛选语言来处理外发邮件,您将不得不付出更多的努力,因为它不能很好地集成到常用软件中,至少不如 Dovecot 中的 Pigeonhole Sieve 集成那么好,它只会在两个特定用例中触发:

  1. 收到邮件时,又称最终交付发往 Dovecot 管理的邮箱的邮件阶段,或
  2. 管理邮箱,特别是本地或 IMAP 连接的客户端对 Dovecot 管理的邮箱的操作。

值得注意的是,该集成不会处理邮件提交的情况:虽然 Dovecot 确实包含提交代理,但它通常根本不涉及该方向,并且在极少数情况下使用它,然后仍然不处理 Sieve。

您现在有几种选择:

  • 在存储到“已发送”邮箱的邮件上触发脚本(但不会对未存储在该邮箱中的邮件起作用)
  • 用 Postfix 的内置功能替换您的脚本。收件人密件抄送地图想到
  • 配置 postfixheader_checks以简单地拒绝不符合您的策略的邮件(例如,跳过所需的收件人:标题,然后拒绝所有不完整的版本)
  • 在某些过滤器中配置副本
  • 配置一个(最好是新的本地)地址,将其扩展到您想要接收邮件的两个地址,让用户将邮件发送到那里
  • 将该收件人的邮件通过管道传输到脚本,可能是使用 Sieve 脚本的脚本(这不太可能:现有软件无法很好地支持在 LDA 用例之外使用 Sieve)

相关内容