【问题标题】:How to get message flags like "seen" in Gmail API如何在 Gmail API 中获取诸如“已见”之类的邮件标志
【发布时间】:2014-09-16 04:28:20
【问题描述】:

我正在尝试使用 RESTful API 从 Gmail 获取电子邮件消息,但我看不到如何获取消息标志(已读/未读等)。 有什么方法可以使用 RESTful API 从 Gmail 中获取消息标志?

谢谢。

【问题讨论】:

    标签: gmail-api


    【解决方案1】:

    “标志”和“文件夹”是什么意思?您是否习惯于使用 IMAP 并在这个意义上指代它?您通常想要的是查看诸如“未读”之类的标签。这些标签是硬编码的系统标签,并记录在: https://developers.google.com/gmail/api/guides/labels

    它们是那些确切的值,从未像网络用户界面那样翻译成其他语言。

    gmail 没有“标志”或“文件夹”,只有标签。提供标志和文件夹概念(有点骇人听闻)以支持 IMAP。如果您想查看收件箱中的所有未读邮件,只需执行以下操作:

    >>> messages.list(labelIds=["INBOX", "UNREAD'])
    

    【讨论】:

    • 是的,我曾经使用 IMAP,现在从它迁移到 Gmail RESTFul API。感谢您的回答。
    【解决方案2】:

    消息的已读/未读状态由未读标签的存在指示。您还可以查看消息是否已加星标。见Managing Labels

    【讨论】:

    • 有趣,如果我可以依赖标签名称?它们对于任何语言都是一样的还是 UNERAD 仅适用于英语?而且我还在想,在我从 Message 获得的标签列表中,我只看到标签(文件夹),但现在我必须过滤掉“文件夹”和标志。非常令人困惑-恕我直言。无论如何,谢谢,它很有帮助。
    • “文件夹和标志”是 IMAP 概念,它们不能很好地映射到 Gmail。 Gmail IMAP 最好符合 IMAP 标准,但这并不总是显而易见的。在 Gmail 中,一切都是标签,即使是收件箱和未读。这些系统标签 ID 是标准的,不会更改:developers.google.com/gmail/api/guides/labels
    • @SlavaG 是的,看起来标签名称如the docs所示,API中没有翻译
    【解决方案3】:

    你可以这样做:

    ListMessagesResponse emails = service.users().messages().list("me").setQ("label:UNREAD").execute();
    // Getting my unread mails.
    

    它适用于任何语言。

    【讨论】:

    • 这不是我要查找的内容,我想获取所有消息及其标志,而不仅仅是未读消息。使用标签来构建标志是丑陋的 :) .
    猜你喜欢
    • 2015-11-02
    • 2016-07-30
    • 2021-08-14
    • 1970-01-01
    • 2015-03-26
    • 2020-08-04
    • 1970-01-01
    • 2021-04-06
    • 2014-10-08
    相关资源
    最近更新 更多