使用 dovecot 创建自定义邮箱

使用 dovecot 创建自定义邮箱

我正在尝试设置 dovecot + sieve 插件。我使用的是 Maildir 格式。我使用 Thunderbird 阅读电子邮件,因此我的服务器上不需要网络邮件。基本配置工作正常,但现在我想在 sieve 中添加一些规则来重定向一些邮件,例如这个:

require ["envelope", "fileinto"];
if envelope :is "from" "[email protected]" {
    fileinto "Test";
}

但是筛选器找不到“测试”目录,因此将其放入“收件箱”。/var/log/syslog输出:

dovecot: lda([email protected]): Error: sieve: msgid=<[...]>: failed to store into mailbox 'Test': Mailbox doesn't exist: Test
dovecot: lda([email protected]): sieve: msgid=<[...]>: stored mail into mailbox 'INBOX'

因此,我尝试通过在 dovecot 中使用这个配置手动添加邮箱(但理想情况下,我希望当 sieve 请求新邮箱时它是自动的):

 namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Test {
    auto = subscribe
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix = 
}

就像收到邮件后会创建邮箱并存储邮件一样,~/mail/Test/new/但我在 Thunderbird 中找不到文件夹/邮箱“Test”。其他所有邮箱都正确显示为 Thunderbird 中的文件夹,但新邮箱却不是。

我做错了什么?我找不到任何 dovecot 配置示例,其中人们使用自定义邮箱(只有几个默认邮箱)。dovecot 还能做到吗?甚至更好:当 sieve 需要新邮箱时,有没有办法自动创建邮箱?

答案1

使用:createmailbox筛分能力参数(别忘了require!):

require ["envelope", "fileinto", "mailbox"];
if envelope :is "from" "[email protected]" {
    fileinto :create "Test";
}

答案2

好的,Jens Erat 所说的正是我想要的。require我尝试使用时忘记了:create,但现在可以了。服务器在接收时会创建新的邮箱。

对于那些想知道的人,我还发现,在 Thunderbird 中,您必须右键单击您的邮箱 > 订阅 > 订阅新文件夹,以便它检查在服务器端创建的文件夹中的邮件。它不会自动订阅这些邮件(除非有一个选项,但我没有看到它)

相关内容