如何在没有Gmail API原始邮件的情况下收到回复邮件

Dan*_*los 7 gmail gmail-api

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

(据我所知,这个问题也在这里提出,但是我没有发现提议的解决方案回答了问题,并且提议的解决方案的海报建议我开始一个新问题.我尝试使用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);
Run Code Online (Sandbox Code Playgroud)

响应

结果

小智 5

这是我的解决方案。它有点长,但我尝试尽可能详细地记录它。

messageGmail API 返回的 句柄: https ://developers.google.com/gmail/api/v1/reference/users/messages#resource

输入:

Hello. This is my reply to message.

On Thu, Apr 30, 2020 at 8:29 PM John Doe <john.doe@example.com>
wrote:

> Hey. This is my message.
>


-- 
John Doe
My Awesome Signature
Run Code Online (Sandbox Code Playgroud)

输出:

Hello. This is my reply to message.
Run Code Online (Sandbox Code Playgroud)

代码:(不幸的是,这没有语法突出显示:P)

Hello. This is my reply to message.

On Thu, Apr 30, 2020 at 8:29 PM John Doe <john.doe@example.com>
wrote:

> Hey. This is my message.
>


-- 
John Doe
My Awesome Signature
Run Code Online (Sandbox Code Playgroud)


Jay*_*Lee 4

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