Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript使用Gmail API显示邮件内容_Javascript_Gmail Api - Fatal编程技术网

使用javascript使用Gmail API显示邮件内容

使用javascript使用Gmail API显示邮件内容,javascript,gmail-api,Javascript,Gmail Api,我正在尝试为我的web应用程序连接GMAIL API,我能够成功连接到gmail帐户并能够检索所有邮件。下一个级别是单击邮件,我需要像gmail一样显示邮件详细信息。我能够使用gmail API使用邮件线程ID检索特定邮件,并且我尝试使用响应中的代码段数据显示邮件内容缺失,但当我使用gmail查看同一封邮件时,它会正确显示新行。我在这里缺失了什么?我认为代码片段的类型是纯文本,但gmail仍然能够正确显示。因此,我应该如何在我的应用程序中实现同样的效果。 [更新]感谢它的工作,但现在当我在g

我正在尝试为我的web应用程序连接GMAIL API,我能够成功连接到gmail帐户并能够检索所有邮件。下一个级别是单击邮件,我需要像gmail一样显示邮件详细信息。我能够使用gmail API使用邮件线程ID检索特定邮件,并且我尝试使用响应中的代码段数据显示邮件内容缺失,但当我使用gmail查看同一封邮件时,它会正确显示新行。我在这里缺失了什么?我认为代码片段的类型是纯文本,但gmail仍然能够正确显示。因此,我应该如何在我的应用程序中实现同样的效果。

[更新]感谢它的工作,但现在当我在gmail应用程序中查看邮件时,它看起来像下图如何避免这些换行我甚至试图更改内容传输编码,但当我在gmail中查看邮件时仍然会出现硬换行如何避免这些换行


这个
代码片段只是一行文字的预览,只包含了几个单词,就像gmail web界面上显示的那样

完整的电子邮件文本嵌套在
有效负载.parts
下,并用base 64编码

实现此目的的一种方法如所述:

注意:警告:电子邮件之间的数据结构可能不同,您的代码应该考虑到这一点


另一种可能的解决方案是请求
raw
格式的消息,如前所述。然后,API应该使用
raw
属性(也是base64编码的)进行响应。

感谢这为javascript提供了技巧,我们可以使用下面的方法,但正如您所提到的,我们也需要处理不同的数据结构,但在我的例子中,我设法检查了大多数结构。atob(part.payload.parts[0].body.data.replace(/u/g,“/”).replace(/-/g,“+”);这解决了你的问题吗@anbuselvan?如果是这样的话,您是否可以接受anser,以便其他用户可以轻松找到它?谢谢您是否尝试过按照中所述获取原始消息,然后对其进行解码?这将允许您访问不同的HTML部分。另外,为了澄清,您基本上希望获得HTML电子邮件消息,以便您可以修改其部分,对吗?
    {id: "172ac2ce0f73c58e", threadId: "172ac2ce0f73c58e", labelIds: Array(2), snippet: "DEar, his djknejkn ;medmek dckmeklmdkelm ekmcelkmckl elkmcklem lkmekcmel lmeklcme Thanks,", payload: {…}, …}
historyId: "10454530"
id: "172ac2ce0f73c58e"
internalDate: "1592026521000"
labelIds: (2) ["SENT", "INBOX"]
payload: {partId: "", mimeType: "multipart/alternate", filename: "", headers: Array(10), body: {…}, …}
result: {id: "172ac2ce0f73c58e", threadId: "172ac2ce0f73c58e", labelIds: Array(2), snippet: "DEar, his djknejkn ;medmek dckmeklmdkelm ekmcelkmckl elkmcklem lkmekcmel lmeklcme Thanks,", payload: {…}, …}
sizeEstimate: 644
snippet: "DEar, his djknejkn ;medmek dckmeklmdkelm ekmcelkmckl elkmcklem lkmekcmel lmeklcme Thanks,"
threadId: "172ac2ce0f73c58e"
__proto__: Object
var part = message.parts.filter(function(part) {
  return part.mimeType == 'text/html';
});
var html = urlSafeBase64Decode(part.body.data);