使用attachmentid

时间:2016-08-29 19:29:59

标签: gmail-api

我正在使用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时我应该得到附件大小不同?

如何获取附加到电子邮件的图像。

1 个答案:

答案 0 :(得分:0)

您目前正在使用message.get(格式= FULL)进行调用吗?在这种情况下,&#34; attachmentid&#34;可以提供给单独的message.attachment.get()调用以检索附件内容。或者,您也可以在一个响应中调用message.get(format = RAW)来检索整个未解析的电子邮件。