Search code examples
gmail-api

Why is attachmentId missing in payload/parts/body from certain emails?


I'm using the gmail API to first generate a list of all attachments, and then download the attachments on demand.

I'm basically calling GET https://www.googleapis.com/gmail/v1/users/me/messages/{ID}?key={YOUR_API_KEY} on all message ids that have an attachment, and then grabbing all the attachmentIds to use with the messages.attachments API later. This works for the majority of my attachments, but I notice for certain emails, the attachment ID is missing.

Heres an example response (with certain parts omitted) from such one of those emails:

{
 "id": "114fda8b3fe57cb1",
 "threadId": "114fda8b3fe57cb1",
 "labelIds": [
  "INBOX"
 ],
 "snippet": "",
 "historyId": "1027074",
 "payload": {
  "mimeType": "multipart/mixed",
  "filename": "",
  "headers": [
  ],
  "body": {
   "size": 0
  },
  "parts": [
   {

   },
   {
    "partId": "1",
    "mimeType": "image/jpeg",
    "filename": "IMG_3746.JPG",
    "headers": [
     {
      "name": "Content-Type",
      "value": "image/jpeg; name=\"IMG_3746.JPG\""
     },
     {
      "name": "Content-Transfer-Encoding",
      "value": "base64"
     },
     {
      "name": "Content-Disposition",
      "value": "attachment; filename=\"IMG_3746.JPG\""
     },
     {
      "name": "X-Attachment-Id",
      "value": "f_1ydodxn"
     }
    ],
    "body": {
     "size": 447292    <------ Here is where I would expect attachmentId to be...
    }
   },
   {

   }
  ]
 },
 "sizeEstimate": 2873869
}

Here's what the parts/body looks like from a response from a message that has everything I expected:

"body": {
"attachmentId": "ANGjdJ9CRk8VcuxPzOMnGhFQdJpB6vc7xNAZTw5Gav3jZRQkEi3lRvELnjUTEqQtpiJDkKx8IR3qEOyT0wW6LD_tQ3NvPWDucURPaW0xUBJm8gwP-De9hOt7DbciRdfYCX79JWoHtGS2cooTzpAfZwYXc2lmcjCeL_SvgCZAtIEOVs45atTOsx9BCb02aJzNAvga2f3OdsBNbUkCyyZWQZGB0bHQf4q30BmoDFLrBhq67k3f5VOpOxsFl4QDLS5Md-JxhbQ1qsFk_usEUvcOqFsNgckmtj6y0zrKyDDc8g",
"size": 536
}

I can't use GET messages/attachments without the attachmentId... whats going on? What am I missing?


Solution

  • Looks like that was an issue with some older attachments. Should be resolved now.