我试图弄清楚文件系统结构和dovecot的命名空间前缀之间是否存在连接。 具体来说,在我的设置中,我没有声明任何命名空间,所以dovecot创build一个默认的。 每当新用户首次login时,其maildir中的文件夹结构是:
Maildir/ ... cur new .Sent Items .Drafts .Junk E-mail .Deleted Items ...
当我从电子邮件客户端login时,我看到这些邮箱:
INBOX Sent Items Drafts Junk E-mail Deleted Items
我的问题是:
1.INBOX邮箱不应该是“.INBOX”目录吗? 从查看内容,我看到INBOX邮箱从“cur”目录中获取它的项目。 为什么这个INBOX邮箱的例外?
2.如果我用inbox = yes和prefix = FOO定义了一个明确的私有名称空间,那么这将对文件夹结构和客户端邮箱显示有什么影响? 基本上我无法弄清楚命名空间前缀的用途,以及是否用于命名用户Maildir中的实际目录。
谢谢
编辑:在阅读答案和做一些更多的挖掘,我仍然有这个问题:IMAP邮箱/文件夹有Maildir目录内的相应的fs目录,(例如,当用户(从他们的IMAP客户端)创build一个顶级文件夹/邮箱,说“重要”,在Maildir下创build一个“.Important”目录,因此每个IMAP邮箱/文件夹的映射目录都是Maildir的子目录,除INBOX邮箱外:其对应的目录是Maildir本身。我想将INBOX目录设置为Maildir的一个子目录,就像所有其他的邮箱一样,我根本不使用mbox,我想做什么是有意义的,如果是,我该怎么做?
INBOX邮箱不应该是“.INBOX”目录吗?
可能,但通常是~/Maildir/[new|cur|tmp]
是INBOX的组成部分。
与所有的事情一样,您可以configuration Dovecot,以配合您希望传送和存储电子邮件的方式。 ~/Maildir/INBOX/[new|cur|tmp]
是完全可以的。 请注意,这应该与您的传入SMTP服务器(或LDA)configuration为将新电子邮件存储在磁盘上的方式匹配。
文件夹是对Maildir ++ 原始 Maildir格式的扩展,如此处所述。 IMAP文件夹实现为具有命名约定Maildir/.<Folder Name>
和Maildir/.<Folder Name>.<Sub Folder>
的子目录。
IMAP文件夹也是Maildir目录本身,它们也包含cur,new和tmp子目录,即Maildir/.<Folder Name>/[cur|new|tmp]/
根据您的需要,您可以通过在Dovecot mail_location
configuration设置中包含LAYOUT=fs
选项将其更改为Maildir/<Folder Name>/<Sub folder>
。 虽然我没有真正看到需要,因为你不应该通过文件系统pipe理你的邮件。
如果我使用inbox = yes和prefix = FOO定义了一个明确的私有名称空间,那么这将对文件夹结构和客户端邮箱显示有什么影响?
在磁盘上的文件夹结构上,大部分是没有的,这是通过名称空间中的mail_location
设置以及是否存在layout = FS选项来configuration的。
用inbox = yes创build一个名称空间使该名称空间成为INBOX。 用户只能有一个INBOX。 您需要确保您的传入邮件也可以在那里得到实现。 具有两个名称空间的示例是经典的mbox文件,即INBOX,Maildir以Maildir格式在用户主目录中保存所有IMAP文件夹:
namespace { separator = / prefix = "#mbox/" location = mbox:~/mail:INBOX=/var/spool/mail/%u inbox = yes hidden = yes list = no } namespace { separator = / prefix = location = maildir:~/Maildir }
前缀用于Dovecot的NAMESPACE响应中,效果取决于IMAP客户端。 有关命名空间的用途,请参阅RFC 2342 。
基本上我无法弄清楚命名空间前缀的用途,以及是否用于命名用户Maildir中的实际目录。
对于IMAP协议的命名空间扩展,Dovecot还有很多话要说。
因为这是如何工作的,Maildir格式的POP3将从Maildir的根目录中的cur / new中获取收件箱消息。 如果它被传送到.INBOX / cur,则不会有POP3消息
命名空间在RFC2342中定义。 Dovecot命名空间用于更改层次结构分隔符,为其他邮件服务器提供向后兼容性,为公共和共享邮箱提供支持,并允许您在不同的地方使用邮件。 Dovecot在他们的wiki上提供关于其用法的信息: http : //wiki2.dovecot.org/Namespaces
要具体回答您的问题,将对客户端有什么影响,这取决于客户端。 特别是在谈到IMAP连接时,为了响应NAMESPACE
命令,您将返回一个“FOO”命名空间。 然后,客户端可以发出LIST "FOO%"
命令来获取该名称空间中的邮箱列表。 如何在邮件存储的文件系统上播放,然后由您的邮件存储格式(例如,Mbox或Maildir)