我正在使用gmailAPI来阅读电子邮件。从返回的JSON中,我得到一个attachmentId,然后我查询gapi.client.gmail.messages.attachments.get以获取附件本身。我正在使用png附件测试下面的代码,我确实得到了JSON,我假设的数据属性是base64,因为这就是标题所说的
//是的,我知道下面的代码可能会更好但是现在我想知道数据中包含的内容。
function getAttachmentContent(attachmentDict, attachmentId, isLast) {
var request = gapi.client.gmail.users.messages.attachments.get({
'userId': 'me',
'messageId': getParameterByName('msgid'),
'id': attachmentId
});
request.execute(function (resp) {
attachmentDict[attachmentId].gmailAttachmentItem.Length = resp.size;
attachmentDict[attachmentId].gmailAttachmentItem.Content = resp.data;
if (isLast) {
//Return only the key values as an array.
var attachmentArray = new Array();
for (key in attachmentDict) {
if(key.indexOf("index") < 0)
attachmentArray.push(attachmentDict[key].gmailAttachmentItem);
}
emailMessage.GmailAttachments = attachmentArray.slice(0, attachmentArray.length - 1);
}
});
}
包含attachmentid
的JSON片段{
"partId": "1",
"mimeType": "image/png",
"filename": "unnamed.png",
"headers": [
{
"name": "Content-Type",
"value": "image/png; name=\"unnamed.png\""
},
{
"name": "Content-Description",
"value": "unnamed.png"
},
{
"name": "Content-Disposition",
"value": "attachment; filename=\"unnamed.png\"; size=13258; creation-date=\"Mon, 29 Aug 2016 13:34:23 GMT\"; modification-date=\"Mon, 29 Aug 2016 13:34:24 GMT\""
},
{
"name": "Content-Transfer-Encoding",
"value": "base64"
}
],
"body": {
"attachmentId": "ANGjdJ8d3DgMc6114J2v-R16nU1biO2et7xOQZuC23BQgIXVq7v8mn-Ssn88I_zD-HOo6ArbKmv7vFe-1mkZKjNVkLPqP1n8wwhCgON-wh_BFkrArBkIU6SWN4Zh2uvKY2FQLIyCcJtyHDmZlgZB8b4MlLGiBXldpLJ0ioTH4f3De9YVuq5AxhioxbS9X2bggN2tT4YOZgXknVpBvsZ0O00Z43jAB92g3xMFqJjYeLN_l-vL0Xb73WY-xtwXWLGAPWlyD0wPq6a4Fi-qX_RWTfwMZN12AtGaLFFyrtGEKSfEo1cLKzYN8VosPPSVZHA",
"size": 18146
}
}
我收到此回复,数据中的内容是base64 image吗?
我使用jsfiddle链接显示数据,因为粘贴整个响应超过了30000个字符的限制。
data属性中的内容是base64图像吗?如果没有,那是什么?根据谷歌
attachmentid :如果存在,则包含可在单独的messages.attachments.get请求中检索的外部附件的ID。如果不存在,则消息部件正文的整个内容包含在数据字段中。
size :邮件部分正文中的总字节数。
数据:MIME邮件部分的正文数据。对于没有邮件正文的MIME容器类型或者正文数据作为单独的附件发送时,可能为空。如果正文数据包含在单独的附件中,则存在附件ID。
我下载电子邮件时收到的大小18146与附件大小13258不同。附件存在,所以当我使用gapi.client.gmail.users.messages.attachments.get时我应该得到附件大小不同?
如何获取附加到电子邮件的图像。
答案 0 :(得分:0)
您目前正在使用message.get(格式= FULL)进行调用吗?在这种情况下,&#34; attachmentid&#34;可以提供给单独的message.attachment.get()调用以检索附件内容。或者,您也可以在一个响应中调用message.get(format = RAW)来检索整个未解析的电子邮件。