如何使用imaplib获取All Mail文件夹中邮件的UID?(GMail)
如何通过imaplib获取“所有邮件”文件夹中邮件的UID,如果我已经在收件箱中有这封邮件的UID?
正如你所知道的,谷歌会把邮件同时存储在“所有邮件”和“收件箱”中。我想使用imaplib把这封邮件移动到垃圾箱文件夹。
2 个回答
0
你可以通过在所有邮件(AllMail)文件夹中使用 X-GM-MSGID 来进行搜索。
X-GM-MSGID 是 Gmail 中每封邮件的唯一标识符,这个标识符在所有文件夹中都是独一无二的。所以你只需要获取收件箱(INBOX)中邮件的 X-GM-MSGID 和 UID。
接下来,你需要在所有邮件文件夹中使用 X-GM-MSGID 进行搜索,像这样:
UID SEARCH X-GM-MSGID 1278455344230334865
想了解更多细节,可以查看这里: https://developers.google.com/google-apps/gmail/imap_extensions#access_to_the_gmail_unique_message_id_x-gm-msgid
我觉得 imap 库可能不支持 Gmail 的增强功能。你可能需要用 Gmail 特定的命令来扩展 imap 库。
1
你可以通过以下两种方式来实现这个功能。
你可以使用邮件头中的
Message-Id
字段。两个邮件的Message-Id
字段是一样的。在
All Mail
文件夹上使用SEARCH
命令。也就是说,你可以根据标题搜索,这样就能找到那个邮件的uid
。