如何使用imaplib获取All Mail文件夹中邮件的UID?(GMail)

2 投票
2 回答
3046 浏览
提问于 2025-04-16 05:40

如何通过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

你可以通过以下两种方式来实现这个功能。

  1. 你可以使用邮件头中的 Message-Id 字段。两个邮件的 Message-Id 字段是一样的。

  2. All Mail 文件夹上使用 SEARCH 命令。也就是说,你可以根据标题搜索,这样就能找到那个邮件的 uid

撰写回答