Gmail IMAP:有没有办法找到某封邮件的所有标签(文件夹)?

Gmail IMAP:有没有办法找到某封邮件的所有标签(文件夹)?,gmail,imap,gmail-imap,Gmail,Imap,Gmail Imap,所以,Gmail的IMAP有点“怪异”。它们使用IMAP文件夹来表示标签。我通常认为IMAP中的一封电子邮件只能属于一个“文件夹”,而Gmail中的一封电子邮件可以属于多个“文件夹”,这使我们能够非常接近标签的功能 我的问题是,我正在编写一个gmail客户端(这样,与标准的imap客户端相比,加星号、删除和归档等操作更直观),但我希望能够显示给定电子邮件的文件夹(标签) 据我所知,这并不容易(我必须循环浏览每个文件夹中的每条消息,看看它在哪个文件夹中) 有人知道一种整洁的方法吗?或者我认为没有简

所以,Gmail的IMAP有点“怪异”。它们使用IMAP文件夹来表示标签。我通常认为IMAP中的一封电子邮件只能属于一个“文件夹”,而Gmail中的一封电子邮件可以属于多个“文件夹”,这使我们能够非常接近标签的功能

我的问题是,我正在编写一个gmail客户端(这样,与标准的imap客户端相比,加星号、删除和归档等操作更直观),但我希望能够显示给定电子邮件的文件夹(标签)

据我所知,这并不容易(我必须循环浏览每个文件夹中的每条消息,看看它在哪个文件夹中)

有人知道一种整洁的方法吗?或者我认为没有简单的方法是对的吗?

最直接(尽管不是万无一失)的方法是获取消息的
消息ID
头的值。然后迭代“标签”文件夹,并按照

A001 SEARCH HEADER MESSAGE-ID "your-msgid-value"

如果您在未标记的
搜索
响应中返回任何结果,则消息具有选定的“文件夹”标签。

Gmail提供了一组IMAP扩展,允许IMAP客户端的作者通过IMAP提供更像Gmail的体验。看


要获取特定消息的标签,可以使用X-GM-labels属性调用IMAP fetch命令。请看

谢谢,我不久前发现了Gmail的IMAP页面,但从未回来放在这里。