【问题标题】:Fetching sent mail associated to a draft mail using gmail api使用 gmail api 获取与草稿邮件关联的已发送邮件
【发布时间】:2016-09-09 12:55:34
【问题描述】:

我正在尝试使用 gmail api 获取与草稿邮件关联的已发送邮件。

我有一个草稿电子邮件的 messageId。我正在从浏览器地址栏 url 中获取草稿 ID(例如:https://mail.google.com/mail/u/0/#inbox?compose=1570432re9b57469

发送邮件后,电子邮件将从草稿移至已发送邮箱。发送邮件的 messageId 也会发生变化。

尝试使用 gapi.client.gmail.users.drafts javascript gmail api 获取草稿。但收到错误“未找到请求的实体”。

消息不是使用 gapi 发送的。邮件是使用普通的 gmail 撰写窗口发送的。

有没有办法使用草稿 messageId 或任何其他参考来获取与草稿邮件关联的已发送邮件 ID?

【问题讨论】:

  • drafts/send 方法的响应中的id 字段是什么?这不是消息ID吗? https://developers.google.com/gmail/api/v1/reference/users/drafts/send
  • 消息不是使用gapi发送的
  • 邮件是使用普通的 gmail 撰写窗口发送的
  • 你碰巧知道Message-Id标头的值吗?
  • 我知道草稿邮件的 messageId(如 15709ad2dd121212121)

标签: javascript gmail-api google-api-js-client


【解决方案1】:

好的,这是一个想法。当您获取草稿消息的ids 时,使用drafts/get 方法执行一个额外请求(如果有很多草稿,则针对每个草稿),使用format=metadata 参数来获取Message-Id 标头, 这应该是持久的。然后,当消息发送时,使用该标头的值搜索它,通过发出请求:

https://www.googleapis.com/gmail/v1/users/me/messages?maxResults=1&q=rfc822msgid:THEACTUALRFC822MESSAGEID

【讨论】:

  • 谢谢 :) 让我试试这个
  • 我试图访问草稿 googleapis.com/gmail/v1/users/my_email/drafts/…{access_token} 但我收到错误“未找到请求的实体。”
  • 同样在发送消息后,该消息会从草稿中删除。因此它不会在草稿/获取请求中提供草稿消息对象。
  • 您在上面提到您使用googleapis.com/gmail/v1/users/userId/drafts 获取草稿ID。在您完成该请求后,立即执行我在上面建议的drafts/get 请求。它应该会找到草稿。
  • 在某些情况下,我仅从浏览器地址栏中获取 Id。让我再检查一下你建议的方法。
猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 2014-10-20
  • 2018-02-26
  • 2016-03-16
  • 2018-11-16
  • 2021-01-27
  • 2016-05-12
  • 1970-01-01
相关资源
最近更新 更多