有关子文件夹和 IMAP 的概念性问题,我在任何规范中都没有找到答案。
假设我有以下文件夹(以 maildir 表示法编写,其中
.
是层次结构分隔符);
INBOX
Sub.Folder
重要的是,请注意,没有名为
Sub
的文件夹,但有一个 Sub
-> Folder
。
Sub
是否需要存在,至少作为服务器上的 \NoSelect
或 \NonExistent
邮箱?Sub
文件夹以用于邮箱呈现的目的。是服务器在 LIST 响应中包含 Sub
作为 \NonExistent
,还是客户端的工作是在收到 LIST 响应后找出不存在 Sub
,并且 Sub.Folder
在逻辑上应该是嵌套在诸如此类的虚拟文件夹下?例如,基于 Thunderbird 的客户端似乎会自动执行此操作。在后一种情况下,是扫描返回的邮箱的适当算法,查看哪些邮箱是以返回的响应中不存在的父文件夹为前缀的子文件夹,并创建虚拟邮箱以显示为就像它们被返回一样
\NonExistent
?这是我的最佳猜测,但我无法在任何地方的 RFC 中确定这一点。
这是波斯特尔原理的一个例子(再次强调,并不意味着大多数人的想法)。但这是它确实适用的情况——RFC 中未指定的角落。
作为客户端,您不认为服务器需要做正确的事情,因此您应该自由并涵盖他们不发送有关子邮箱的任何内容的情况。服务器作者不认为客户端需要处理丢失的情况,因此他们应该保守并发送
\NoSelect '\HasChildren
邮箱。