通过 Gmail REST API 发送的电子邮件/草稿无法在新的 Gmail 用户界面中打开

Posted

技术标签:

【中文标题】通过 Gmail REST API 发送的电子邮件/草稿无法在新的 Gmail 用户界面中打开【英文标题】:Emails/drafts sent via Gmail REST API can't be opened in the new Gmail UI 【发布时间】:2018-11-06 13:52:55 【问题描述】:

通过 Gmail REST API 发送草稿时,发件人无法在新的 Gmail 用户界面中打开“已发送邮件”文件夹中的邮件。您收到错误消息"The conversation that you requested could not be loaded."

接收方的消息可以毫无问题地打开,不管是否有新的 UI。

恢复到旧版/经典 Gmail 用户界面允许发件人打开已发送的邮件。

重现步骤:

    在 Gmail 中撰写草稿(新旧 UI 无关紧要) 通过GET https://www.googleapis.com/gmail/v1/users/me/drafts查找草稿ID 通过POST https://www.googleapis.com/gmail/v1/users/me/drafts/send 发送草稿,正文为"id": "<draftId>" 返回 Gmail 并切换到新的 Gmail 用户界面,然后尝试在“已发送”文件夹中打开最近发送的草稿。尝试打开邮件将失败。 恢复到旧的/经典的 Gmail 用户界面并在“已发送”文件夹中打开最近发送的草稿。您将能够毫无问题地打开邮件。 收件人可以使用新版或旧版 UI 毫无问题地打开邮件。

更新

当损坏的已发送电子邮件收到回复时,它似乎已“修复”,发件人现在可以从新的 Gmail 用户界面打开已发送的电子邮件。这似乎表明 REST API 缺少某些内容,一旦通过其他方式更新线程就会得到修复?

尝试打开损坏的已发送消息时浏览器控制台中的错误消息:

Error: Ppa No message loaded when we received the DETAILED_CONVERSATION_MESSAGES_LOADED event.

【问题讨论】:

我也有同样的问题 - 我找不到任何解决方法。似乎是新 Gmail 用户界面中的一个错误。邮件 100% 有效,我可以使用 IMAP 客户端或旧版 Gmail 用户界面查看邮件。 我认为新的 Gmail UI、旧的 UI 和 Rest API 之间存在“状态偏差”。一个相关问题,新版 Gmail 用户界面中的“未读”与旧版用户界面中的“未读”不同:***.com/questions/51858633/… 【参考方案1】:

我无法重现此内容。请注意,在再现步骤中#2 是不必要的。相反,应该分析 #1 中的 drafts.c​​reate() 的结果,新的草稿消息的 id 存在那里。

另外值得注意的是,草稿 ID 与消息 ID 不同。 drafts.c​​reate() 和 drafts.update() 的响应将是一个 Draft ID,而 drafts.send() 的结果将是消息 ID。在 Gmail 用户界面中查看已发送邮件时,请确保您使用的是邮件 ID。

【讨论】:

以上是关于通过 Gmail REST API 发送的电子邮件/草稿无法在新的 Gmail 用户界面中打开的主要内容,如果未能解决你的问题,请参考以下文章

如何使用来自 postmnan 本机应用程序的 gmail rest api 发送邮件

使用先前存储在数据库中的凭据执行发送电子邮件的 API 端点。 (使用 Gmail REST API)

如何使用新的 Gmail REST API 成功发送消息?

Gmail Api 可恢复上传 Rest(附件大于 5MB)

Gmail REST API:400错误请求+失败的前提条件

通过浏览器身份验证和休息请求 - Gmail API