起因

自从跟着Archwiki自建了Postfix+Dovecot的邮件服务之后一直用的还不错,只是Windows 10 Mail和Outlook并不认识默认的IMAP文件夹,总会自己创建诸如名为 "Sent Items""Deleted Items" 的文件夹,用来作为已发送和已删除的默认IMAP文件夹,就像这样:

结果不同邮件客户端的邮件就开始散养(雾)

而后了解到,自从Outlook2013以后,Outlook使用了 RFC6154XLIST 命令去发现邮箱中的订阅文件夹配置,而ArchWiki的教程配置(见最末尾链接)并没有包含。于是要给dovecot加上mailbox配置,以便邮件客户端自动配置文件夹。


步骤

/etc/dovecot/conf.d/ 中新增配置文件 15-mailbox.conf ,内容如下

namespace inbox {
        inbox = yes

        #下面的内容可以根据需要增减
        mailbox Drafts {
                special_use = \Drafts
                auto=subscribe
        }
        mailbox Junk {
                special_use = \Junk
                auto=subscribe
        }
        mailbox Trash {
                special_use = \Trash
                auto=subscribe
        }
        mailbox "Deleted Items" {
                special_use = \Trash
        }
        mailbox Sent {
                special_use = \Sent
                auto=subscribe
        }
        mailbox "Sent Items" {
                special_use = \Sent
        }
        mailbox Archive {
                special_use = \Archive
                auto=no
        }
        mailbox "Archives" {
                special_use = \Archive
                auto=subscribe
        }
}

保存并重启dovecot生效。


TroubleShooting
  • 此方法经测试不会丢失原有文件夹数据。
  • 若在登录时提示密码错误之类的可以去看下日志,如果发现类似下面报错的需留意上述配置文件line 2的 inbox = yes

    Error: User initialization failed: namespace configuration error: inbox=yes namespace missing

  • 默认情况下dovecot并不会添加 /etc/dovecot/conf.d 下面的配置文件,原因是该目录为空时会导致dovecot报错无法启动。若发现配置文件未生效可在 /etc/dovecot/dovecot.conf 中添加

    !include /etc/dovecot/conf.d/*.conf


参考