我正在使用Python连接到IMAP服务器。
我有一条特殊消息的UID。
有没有办法获取包含此UID的文件夹名称?
或者UID /消息可以在多个文件夹中吗?然后,我想获得此消息所属的文件夹列表。
或者我误解了一些事情。 UID始终是IMAP文件夹的本地文件。它仅在文件夹的上下文中有效。
我使用ImapClient连接到IMAP服务器。但是在这个层面上,所有语言和它们的结合都应该是相同的(我猜)。
答案 0 :(得分:2)
文件夹之间的 不 是唯一的。只保证(文件夹名称,uid有效性,uid)的三重奏是唯一的。
对于大多数服务器软件(尤其是传统的UNIX IMAP服务器),uid在每个文件夹上单调递增并重叠。也就是说,任何文件夹中的第一条消息都是UID 1,第二条消息是UID 2,依此类推。显然已发送:UID-1与收件箱不同的消息:UID-1。
有些服务器实际上会生成帐户唯一的UID(例如yahoo),但这是例外,而不是常态。
Gmail有一个额外的属性,即帐号唯一,即X-GM-MSGID,在IMAP extensions document中有描述。
答案 1 :(得分:1)
我自己找到了答案:
http://www.limilabs.com/blog/unique-id-in-imap-protocol
要识别所有文件夹中的邮件,您需要3个变量:UID, 文件夹名称和FolderStatus.UIDValidity。
...
在大多数现代服务器中,FolderStatus.UIDValidity很少更改。不过客户说 记住会话之间的消息UID必须处理此类更改和 相应地采取行动。
结果:您无法从UID获取文件夹名称。