2016-09-18 116 views

回答

0

就像你在做你不拿到附件IMAP。你得到一个attachmentId,你必须使用一个额外的请求来获取附件。

我刚刚给我发了一封带有附加图片的邮件。这是从API响应的样子:

{ 
"id": "1573ec1aa0976b42", 
"threadId": "1573ec1aa0976b42", 
"labelIds": [ 
    "SENT", 
    "INBOX", 
    "IMPORTANT", 
    "UNREAD" 
], 
"snippet": "", 
"historyId": "939514", 
"internalDate": "1474226662000", 
"payload": { 
    "mimeType": "multipart/related", 
    "filename": "", 
    "headers": [ ... ], 
    "body": { 
    "size": 0 
    }, 
    "parts": [ 
    { 
    "mimeType": "multipart/alternative", 
    "filename": "", 
    "headers": [ 
    { 
     "name": "Content-Type", 
     "value": "multipart/alternative; boundary=94eb2c0d3cba8637a2053ccd2461" 
    } 
    ], 
    "body": { 
    "size": 0 
    }, 
    "parts": [ 
    { ... }, 
    { 
     "partId": "1", 
     "mimeType": "image/png", 
     "filename": "Screen Shot", 
     "headers": [ ... ], 
     "body": { 
     "attachmentId": "ANGjdJ-bmCvsIaV-4KfALXzVV_D567w4i6ksLnwIZhLAl3VXCE335663UbmOLC_vbLrCFusNtnWVpdTv3i88uR482kFwLZqAcwmI7C5gFlamob2aK4-lqAPlCZs17jtCQR9y5Mt4nnpP_Kg64N9qgXbDF0E2vYnEw4xwtEKEo4fRIAbc94ZjjfynFD832mh1B37XFMt-bYw9wkNv24xBife0koBNYpKs-gGLJkfu2EoZouqunGDX9ry1jq2jW2AClWcFXPXvgRBMjUcoRDPtvb9LLLrBhDjU1hu6r1Ibc3c2BSoBogT8QyIp2VUCuFU", 
     "size": 1511996 
     } 
    } 
    ] 
    }, 
    "sizeEstimate": 1513185 
} 

正如你所看到的,它只是包含attachmentId并没有实际的附件数据。

+0

谢谢Tholle快速回答。我正在使用gmail java API并使用获取消息请求。你能否让我在请求中使用你正在使用的参数。 – Mymac

+0

@Mymac我只是使用消息的id,userId:me和format:full,你可以在[API Explorer](https://developers.google.com/gmail/api/ V1 /参考/用户/消息/获取#试穿吧)。如果您只是在同一页上使用与Java示例相同的参数,您将得到相同的响应:'Message message = service.users()。messages()。get(userId,messageId).execute();' – Tholle

+0

我已验证了响应消息,似乎数据属于内联附件。你能否交叉检查内嵌附件的消息(前图) – Mymac