IMAP:从消息的UID到文件夹名称?

时间:2015-09-23 18:45:05

标签: python email imap imaplib uid

我正在使用Python连接到IMAP服务器。

我有一条特殊消息的UID。

有没有办法获取包含此UID的文件夹名称?

或者UID /消息可以在多个文件夹中吗?然后,我想获得此消息所属的文件夹列表。

或者我误解了一些事情。 UID始终是IMAP文件夹的本地文件。它仅在文件夹的上下文中有效。

我使用ImapClient连接到IMAP服务器。但是在这个层面上,所有语言和它们的结合都应该是相同的(我猜)。

2 个答案:

答案 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获取文件夹名称。