Dovecot 命名空间前缀与底层 Maildir 结构的关系

Dovecot 命名空间前缀与底层 Maildir 结构的关系

我正在尝试弄清楚文件系统结构和 dovecot 的命名空间前缀之间是否存在联系。具体来说,在我的设置中,我没有声明任何命名空间,因此 dovecot 会创建一个默认命名空间。每当新用户首次登录时,其 maildir 中的文件夹结构为:

Maildir/
   ...
   cur
   new
   .Sent Items
   .Drafts
   .Junk E-mail
   .Deleted Items
   ...

当我从电子邮件客户端登录时,我会看到以下邮箱:

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 客户端)创建顶级文件夹/邮箱时,比如“重要”,在 Maildir 下会创建一个“.Important”目录。因此,每个 IMAP 邮箱/文件夹的映射目录都是 Maildir 的子目录。除了 INBOX 邮箱:其对应的目录是 Maildir 本身。我想将 INBOX 目录设置为 Maildir 的子目录,就像所有其他邮箱一样。我根本不使用 mbox。我想做的事情有意义吗?如果有意义,我该怎么做?

答案1

INBOX邮箱不应该是一个“.INBOX”目录吗?

有可能,但是通常它们~/Maildir/[new|cur|tmp]就是构成收件箱的内容。

就像所有你能做的事情一样配置Dovecot 以不同的方式匹配您希望电子邮件传递和存储的方式。~/Maildir/INBOX/[new|cur|tmp]完全可以。但请注意,这也应该与您的传入 SMTP 服务器(或 LDA)的配置相匹配,以便在磁盘上存储新电子邮件……

文件夹是原来的Maildir 格式称为 Maildir++,具体如下所述这里. IMAP 文件夹作为具有命名约定的子目录实现Maildir/.<Folder Name>Maildir/.<Folder Name>.<Sub Folder>

IMAP 文件夹本身也是 Maildir 目录,因为它们还包含 cur、new 和 tmp 子目录,即Maildir/.<Folder Name>/[cur|new|tmp]/

根据您的需要,您可以通过在 Dovecot 配置设置中Maildir/<Folder Name>/<Sub folder>包含该选项来更改这一点。尽管我并不认为这有必要,因为无论如何您都不应该通过文件系统来管理邮件。LAYOUT=fsmail_location

如果我定义一个明确的私有命名空间,其中 inbox=yes 和 prefix=FOO,这会对文件夹结构和客户端邮箱显示产生什么后果?

在磁盘上的文件夹结构上,大多没有,这是通过mail_location命名空间中的设置以及layout=FS选项的存在与否来配置的。

创建 inbox=yes 的命名空间会使该命名空间成为收件箱。一个用户只能有一个收件箱。您需要确保您的来信也能投递到那里,这样才能有用。一个有两个命名空间的示例是经典的 mbox 文件作为收件箱,而 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 中的实际目录。

Dovecot 有很多关于命名空间IMAP 协议的扩展。

答案2

  1. 因为这就是它的工作原理,Maildir 格式的 POP3 会从 Maildir 根目录中的 cur/new 获取收件箱邮件。如果将其传递到 .INBOX/cur,则不会有 POP3 邮件

  2. 命名空间在 RFC2342 中定义。在 Dovecot 中,命名空间用于更改层次结构分隔符、提供与其他邮件服务器的向后兼容性、提供对公共和共享邮箱的支持,并允许您在不同的地方存放邮件。Dovecot 在其 wiki 上提供了有关其用法的信息:http://wiki2.dovecot.org/命名空间

要具体回答您关于这会对客户端产生什么影响的问题,这取决于客户端。当具体谈到 IMAP 连接时,响应命令后,NAMESPACE您将返回一个“FOO”命名空间。然后,客户端可以发出LIST "FOO%"命令来获取该命名空间中的邮箱列表。这在邮件存储的文件系统上如何发挥作用取决于您的邮件存储格式(例如,Mbox 或 Maildir)

相关内容