我正在尝试设置 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
使用:create
mailbox
筛分能力参数(别忘了require
!):
require ["envelope", "fileinto", "mailbox"];
if envelope :is "from" "[email protected]" {
fileinto :create "Test";
}
答案2
好的,Jens Erat 所说的正是我想要的。require
我尝试使用时忘记了:create
,但现在可以了。服务器在接收时会创建新的邮箱。
对于那些想知道的人,我还发现,在 Thunderbird 中,您必须右键单击您的邮箱 > 订阅 > 订阅新文件夹,以便它检查在服务器端创建的文件夹中的邮件。它不会自动订阅这些邮件(除非有一个选项,但我没有看到它)