gmail - 如何从 Gmail API 获取没有原始邮件的回复邮件

标签 gmail gmail-api

我想在没有原始消息的线程中获取回复消息。但是,当我使用 Users.messages: GET 或 Users.threads: GET 时,我也会收到带有原始消息(不需要的)的回复(根据需要)。请参阅下面的代码截图。

(据我所知,这个问题也被提出 here ,但是我没有发现建议的解决方案回答了这个问题,建议解决方案的发布者建议我开始一个新问题。我尝试使用 Users.threads然而正如 Tholle 所暗示的,得到了​​相同的结果。)

我是一个菜鸟,所以非常感谢任何和所有的帮助,如果我遗漏了一些明显的东西,我深表歉意。

代码

var gapiGETRequest = function (gapiRequestURL)
  {
      var xmlHttp = new XMLHttpRequest();
      xmlHttp.open( "GET", gapiRequestURL, false );
      xmlHttp.send( null );
      return xmlHttp.responseText;
  }

var gapiRequestInboxMessagesAndToken = "https://www.googleapis.com/gmail/v1/users/me/messages?q=-label%3ASENT+in%3AINBOX&access_token=" + thisToken
var allMessagesReceived = gapiGETRequest(gapiRequestInboxMessagesAndToken)
var allMessagesObject = JSON.parse(allMessagesReceived)
var messageIdsOfReceivedMessages = [];
var getIdsOfReceivedMessages = function(responseObject){
  for(var i=0; i < responseObject.messages.length; i ++) {
    messageIdsOfReceivedMessages.push(responseObject.messages[i].id);
  }
}

var messageContentsArr = [];
var getMessageContents = function(messageIdList)
{
  for(var i=0; i < messageIdList.length; i++)
  {
    var gapiRequestMessageWithId = "https://www.googleapis.com/gmail/v1/users/me/messages/" + messageIdList[i] + "?access_token=" + thisToken
    var currentMessage = JSON.parse(gapiGETRequest(gapiRequestMessageWithId))
    var encodedMessageContents = currentMessage.payload.parts[0].body.data
    var decodedMessageContents = atob(encodedMessageContents.replace(/-/g, '+').replace(/_/g, '/'));
    messageContentsArr.push(decodedMessageContents)
  }
}

getIdsOfReceivedMessages(allMessagesObject);
getMessageContents(messageIdsOfReceivedMessages);

回复

result

最佳答案

您将收到完整的回复消息。当报告回复时,他们引用了原始消息,原始文本在回复消息中。您可能只想做 Gmail 和许多其他现代电子邮件应用程序所做的事情,并折叠/隐藏任何以 > 开头的回复文本。

关于gmail - 如何从 Gmail API 获取没有原始邮件的回复邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31439613/

相关文章:

ios - 如何使用 Objective-C SDK 使用 Gmail API 将邮件设置为未读/已读?

c# - 通过 C# .NET 访问 Gmail Drive

android - ActionBar 中的 ProgressBar,例如带有 Refresh 的 GMail 应用程序

gmail-api - 收到gmail users.watch API的推送通知后如何读取用户的gmail?

ruby - 通过 Google Gmail API 创建草稿

javascript - 使用 google javascript API 发送电子邮件退回邮件

email - postfix 比 gmail 服务器有什么优势

c# - 将 gmail api 与 asp.net web api 结合使用

javascript - 尝试访问 gmail api 时出现无效范围错误

html - 如何使用 SMTP 发送正文带有图像的电子邮件?