【问题标题】:Gmail IMAP : Any way to find all Labels (folders) a particular message is in?Gmail IMAP:有什么方法可以找到特定邮件所在的所有标签(文件夹)?
【发布时间】:2011-05-09 14:02:27
【问题描述】:

所以,Gmail 的 IMAP 有点“奇怪”。他们使用 IMAP 文件夹来表示标签。我相信 IMAP 中的电子邮件通常只能属于一个“文件夹”,但是对于 Gmail,一封电子邮件可以属于许多“文件夹”,这为我们提供了非常接近标签的功能。

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

据我所知,这并不容易(我必须遍历每个文件夹中的每条消息以查看它在哪些消息中)。

有人知道这样做的整洁方法吗?还是我认为没有简单的方法是正确的?

【问题讨论】:

    标签: gmail imap gmail-imap


    【解决方案1】:

    Gmail 提供了一组 IMAP 扩展,允许 IMAP 客户端的作者通过 IMAP 提供更像 Gmail 的体验。见Gmail IMAP Extensions (X-GM-EXT-1)

    要获取特定邮件的标签,您可以使用 X-GM-LABELS 属性调用 IMAP FETCH 命令。见Access to Gmail labels: X-GM-LABELS

    【讨论】:

    • 谢谢,不久前我发现了那个特殊的 Gmail IMAP 页面,但没有回来把它放在这里。
    【解决方案2】:

    最直接(虽然不是万无一失)的方法是获取消息的Message-ID 标头的值。然后遍历“标签”文件夹并按照以下方式执行IMAP SEARCH

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 2020-06-30
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      相关资源
      最近更新 更多