【问题标题】:Search for messages with a particular threadId in Gmail API在 Gmail API 中搜索具有特定 threadId 的邮件
【发布时间】:2014-08-22 09:11:25
【问题描述】:

使用新的 gmail api (https://developers.google.com/gmail/api/) 我想搜索具有特定 threadId 的邮件。

我的用例是我想查找线程中没有附件且不是草稿的所有消息。而不是使用 thread.get 获取线程中的所有消息,然后检查每条消息以检查它是否是草稿或有附件(非平凡),我宁愿只在 messages.list 上发出查询“-has:附件 -is:draft threadId:FOO"。

虽然我似乎无法在执行搜索时找到如何指定线程 ID。有任何想法吗?

【问题讨论】:

    标签: search gmail messages gmail-api


    【解决方案1】:

    Google 实际上提供了一个 API,用于检索具有任何给定线程 ID 的消息列表。因此,如果您已经拥有 ThreadID,为什么不直接使用这个 API?

    不确定您使用的是什么语言,但在 .NET 中可以这样做:

    var threadMessages = gService.Users.Threads.Get("me", "*YourThreadID*").Execute();
    

    其中 gService 是您之前创建的 GmailService。那么为什么不把它称为遍历线程中的消息以检查带有附件等的消息呢?

    可以在here找到一些用于设置的快速入门文档

    【讨论】:

    • 只返回所有消息 ID,而不是消息本身,我需要检查它们是否有附件。
    • 获得 messageID 后,您可以轻松检索消息详细信息,如下所示 - var messageDetails = gService.Users.Messages.Get("me", message.Id).Execute(); messageDetails 现在将包含您提供的 ID 的消息的详细信息。然后,您可以查看此对象并找到附件 - 我会查看对象中的此部分:messageDetails.Payload.Parts 如果这有帮助,请告诉我。
    【解决方案2】:

    “支持与 Gmail 搜索框相同的查询格式。” (来自:https://developers.google.com/gmail/api/v1/reference/users/messages/list

    Gmail 搜索框支持的搜索查询格式记录在此: https://support.google.com/mail/answer/7190?hl=en

    (简短的回答是不支持。)

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 2016-04-17
      • 2017-07-13
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 2022-12-28
      • 1970-01-01
      相关资源
      最近更新 更多