Based on the Tholle idea, I've completed his script to extract Gmail body and attachments.
First of all, you should fetch any gmail-message object and then parse it.
You can fetch any gmail-message with this code:
const {google} = require('googleapis')
// do your authenticatoin here
const oAuth2Client = new google.auth.OAuth2(client_id, client_secret, redirectTo)
const gmail = google.gmail({ version: 'v1', auth: oAuth2Client })
const response = await this.gmail.users.messages.get({
auth: oAuth2Client,
userId: 'me',
id: messageId,
format: 'full'
})
const message_obj = response.data
Main Script:
function parser(response) {
function decode(input) {
const text = new Buffer.from(input, 'base64').toString('ascii')
return decodeURIComponent(escape(text))
}
function decode_alternative(input) {
// this way does not escape special "B" characters
// const text = Buffer.from(input, 'base64').toString('ascii')
// return decodeURIComponent(escape(text))
return base64.decode(input.replace(/-/g, '+').replace(/_/g, '/'))
}
const result = {
text: '',
html: '',
attachments: []
}
let parts = [response.payload]
while (parts.length) {
let part = parts.shift()
if (part.parts)
parts = parts.concat(part.parts)
if (part.mimeType === 'text/plain')
result.text = decode(part.body.data)
if (part.mimeType === 'text/html')
result.html = decode(part.body.data)
if (part.body.attachmentId) {
result.attachments.push({
'partId': part.partId,
'mimeType': part.mimeType,
'filename': part.filename,
'body': part.body
})
}
}
return result
}
Sample Data and response:
const with_multi_type_attachments = {
"id": "16c624e85dfd9883",
"threadId": "16c62397458f34b1",
"labelIds": [],
"snippet": "This is body. Inline-attachments my-custom-link my-custom-email-address Emoji: closure.mp4",
"historyId": "14006828",
"internalDate": "1565017407000",
"payload": {
"partId": "",
"mimeType": "multipart/mixed",
"filename": "",
"headers": [],
"body": {
"size": 0
},
"parts": [
{
"partId": "0",
"mimeType": "multipart/related",
"filename": "",
"headers": [],
"body": {
"size": 0
},
"parts": [
{
"partId": "0.0",
"mimeType": "multipart/alternative",
"filename": "",
"headers": [],
"body": {
"size": 0
},
"parts": [
{
"partId": "0.0.0",
"mimeType": "text/plain",
"filename": "",
"headers": [],
"body": {
"size": 261,
"data": "VGhpcyBpcyBib2R5Lg0KDQpJbmxpbmUtYXR0YWNobWVudHMNCltpbWFnZTogMTMuanBnXQ0KbXktY3VzdG9tLWxpbmsgPGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS8-DQpteS1jdXN0b20tZW1haWwtYWRkcmVzcyA8bWVAd29yay5jb20-DQoNCkVtb2ppOg0K8J-YgvCfmI4NCg0KIGNsb3N1cmUubXA0DQo8aHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2ZpbGUvZC8xVXo4cHpoamh4UC13b0c5dFFkaGM2R1h2RGwzYUpSS3Uvdmlldz91c3A9ZHJpdmVfd2ViPg0K"
}
},
{
"partId": "0.0.1",
"mimeType": "text/html",
"filename": "",
"headers": [],
"body": {
"size": 1244,
"data": "PGRpdiBkaXI9Imx0ciI-PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0ibHRyIj48ZGl2PlRoaXMgaXMgYm9keS48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PklubGluZS1hdHRhY2htZW50czxicj48L2Rpdj48ZGl2PjxkaXY-PGltZyBzcmM9ImNpZDppaV9qeXlpNjgyNjAiIGFsdD0iMTMuanBnIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjBweCIgd2lkdGg9IjIyNSIgaGVpZ2h0PSIyMjUiPjxicj48YSBocmVmPSJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vIiB0YXJnZXQ9Il9ibGFuayI-bXktY3VzdG9tLWxpbms8L2E-PGEgaHJlZj0ibWFpbHRvOm1lQHdvcmsuY29tIiB0YXJnZXQ9Il9ibGFuayI-PGJyPm15LWN1c3RvbS1lbWFpbC1hZGRyZXNzPC9hPjwvZGl2PjxkaXY-PGJyPjwvZGl2PjxkaXY-RW1vamk6PGJyPjwvZGl2PjxkaXY-8J-YgvCfmI48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2IGNsYXNzPSJnbWFpbF9jaGlwIGdtYWlsX2RyaXZlX2NoaXAiIHN0eWxlPSJ3aWR0aDozOTZweDtoZWlnaHQ6MThweDttYXgtaGVpZ2h0OjE4cHg7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O3BhZGRpbmc6NXB4O2NvbG9yOiMyMjI7Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXNpemU6MTNweDtib3JkZXI6MXB4IHNvbGlkICNkZGQ7bGluZS1oZWlnaHQ6MSIgY29udGVudGVkaXRhYmxlPSJmYWxzZSI-PGEgaHJlZj0iaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2ZpbGUvZC8xVXo4cHpoamh4UC13b0c5dFFkaGM2R1h2RGwzYUpSS3Uvdmlldz91c3A9ZHJpdmVfd2ViIiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDozNjZweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cGFkZGluZzoxcHggMDtib3JkZXI6bm9uZSI-PGltZyBzdHlsZT0idmVydGljYWwtYWxpZ246IGJvdHRvbTsgYm9yZGVyOiBub25lOyIgc3JjPSJodHRwczovL3NzbC5nc3RhdGljLmNvbS9kb2NzL2RvY2xpc3QvaW1hZ2VzL2ljb25fMTBfZ2VuZXJpY19saXN0LnBuZyI-wqA8c3BhbiBkaXI9Imx0ciIgc3R5bGU9ImNvbG9yOiMxNWM7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246Ym90dG9tIj5jbG9zdXJlLm1wNDwvc3Bhbj48L2E-PC9kaXY-PC9kaXY-PC9kaXY-PC9kaXY-PC9kaXY-DQo="
}
}
]
},
{
"partId": "0.1",
"mimeType": "image/jpeg",
"filename": "13.jpg",
"headers": [],
"body": {
"attachmentId": "ANGjdJ-BkrF-Gf3L_44M9RIu8clbEbFwu0xLlfL3YOEja7y5pxZecT7YfI6hnI6-PvJ9G-w6orcWYN9jgYAOsHBCBFHezwihjdVWKBYkGB9gmdCBFVK0XKHhGODyMPJLTW2kbbhyTLFBDjEo33Tld7XMtbRAvULGV_Z6mue8XdNAfxcAnhNOGZ48Pi7y_IugKIIXZ_DAD3JvALMxctRONavk7_-oOtf09ksIQPshaA",
"size": 58159
}
}
]
},
{
"partId": "1",
"mimeType": "image/jpeg",
"filename": "attachment-1.jpg",
"headers": [],
"body": {
"attachmentId": "ANGjdJ_M5qM10ANxuQiqn7xLsqGiB01ZfnkpzDd186JRI7NxB7l9nA2xN3EmhKygGyG4aSWeHiZeo-R9NXDG-HKWIDnuOwLoAiLLggvsQ5qlXwsGhKS7f383YaVJs8joI1Q5JtsepWPkBaBCR2wPviMt4mX_L5M7Em8GzKVtLh7fuPFbXguaHIUoyhCXP6mnKXQmNiyaatPvlB7_KPgi7h5wD9gDctpPSu59mUs-9Q",
"size": 707870
}
},
{
"partId": "2",
"mimeType": "video/mp4",
"filename": "closure.mp4",
"headers": [],
"body": {
"attachmentId": "ANGjdJ9iIPaAkkhk7mNFzOU5lQuNMRmiMxgZVY1NDsO-p6XvvbyoEqNgRqz4pepUK5HcGpOGJRMHB0ec9_wlHYbNfhr6aPvdIRO-VD4-Baw55yHgZ8KWhHAiZ3l-BY5nTB6B1xpRwEqKoun52EkPDCRf8g87tEOtq7p4ut02hg",
"size": 7261025
}
}
]
},
"sizeEstimate": 10987809
}
const with_attachmetnst = {
"id": "16c54135a9d42ab4",
"threadId": "16c5411a8c7fcaa8",
"labelIds": [],
"snippet": "With-Attachment-Body droped-ing.jpg",
"historyId": "14005159",
"internalDate": "1564778649000",
"payload": {
"partId": "",
"mimeType": "multipart/mixed",
"filename": "",
"headers": [],
"body": {
"size": 0
},
"parts": [
{
"partId": "0",
"mimeType": "multipart/related",
"filename": "",
"headers": [],
"body": {
"size": 0
},
"parts": [
{
"partId": "0.0",
"mimeType": "multipart/alternative",
"filename": "",
"headers": [],
"body": {
"size": 0
},
"parts": [
{
"partId": "0.0.0",
"mimeType": "text/plain",
"filename": "",
"headers": [],
"body": {
"size": 75,
"data": "V2l0aC1BdHRhY2htZW50LUJvZHkNCg0KDQpbaW1hZ2U6IGRyb3BlZC1pbmcuanBnXSA8aHR0cDovL2Ryb3BlZC1pbmcuanBnPg0K"
}
},
{
"partId": "0.0.1",
"mimeType": "text/html",
"filename": "",
"headers": [],
"body": {
"size": 247,
"data": "PGRpdiBkaXI9Imx0ciI-PGRpdj5XaXRoLUF0dGFjaG1lbnQtQm9keTwvZGl2PjxkaXY-PGJyPjwvZGl2PjxkaXY-PGJyPjwvZGl2PjxkaXY-PGRpdj48YSBocmVmPSJodHRwOi8vZHJvcGVkLWluZy5qcGciPjxpbWcgc3JjPSJjaWQ6aWlfanl1a3M4NnQwIiBhbHQ9ImRyb3BlZC1pbmcuanBnIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiAwcHg7IiB3aWR0aD0iMjIzIiBoZWlnaHQ9IjIyMyI-PC9hPjxicj48L2Rpdj48L2Rpdj48L2Rpdj4NCg=="
}
}
]
},
{
"partId": "0.1",
"mimeType": "image/jpeg",
"filename": "droped-ing.jpg",
"headers": [],
"body": {
"attachmentId": "ANGjdJ-hNpJEK_gzrYEsdQODp-Zwe5QoJP5ONsOy5JoSUC1Qk5Po7KgL_AJnMddPRZ1GWpltr-XRtXv3zS5TTUYJxf7BBZyitkMNH9Kv_rnArqXLJyBOqfL1wNqAJPeQrCzUjk6d0ahqAl6ixNyCCgTu-fxvngaBllXU5pTI3_iL6jWXoin6LoQ-a32vhKs319tChOz5GBuTCTov9oZqTtJPvj1yIqLAmUf8vochDQ",
"size": 43716
}
}
]
},
{
"partId": "1",
"mimeType": "image/jpeg",
"filename": "attached-img.jpg",
"headers": [],
"body": {
"attachmentId": "ANGjdJ-wHL_YHq_zUYZ4AyCHdstehG_7lhh21SXnzvf_33oECSiFcua3UTEbO2u5gSrEVDS4xvdnQa4e2JFb5olkMbv8rBuAprlADc_99pG_X-kf9gjhCiEIPPpr66S7VkB2Wumh9rBFc0bN6j_8mEjoGEBDAyd7lb38SiY8A6v2TP2o9gaKucYfIB__tiQ4Z1C-pSipyNmToCJfE87TuFp_ukQtDQbrVyG1bEoy2w",
"size": 44988
}
},
{
"partId": "2",
"mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"filename": "Motivation Letter Sample.docx",
"headers": [],
"body": {
"attachmentId": "ANGjdJ9c8IKsgC8Do8iAyDHHGiyiho_zv8eI4BkaW_kvnl7--webl9P01xGWTyCwTRblgClK6dE2JH8P7hNd007ZK-CIU5Stwuc6Mp2v-KHC3slmCfko--JRrU1-EotFJqrnr3gmRw9qZgWlCqKxqiJAo1afE67LtwBSuR_frjCCUPH7RuxdY6mP_WJHSP6XA6i5uyhWaRGpnMOzawbTdq1_ZSKo9mjF__dDOsdrlQ",
"size": 7136
}
}
]
},
"sizeEstimate": 133087
}
const without_attachmetnst = {
"id": "16c579bc78fc11b1",
"threadId": "16c579b9b32bc8c5",
"labelIds": [],
"snippet": "Its Body",
"historyId": "14005084",
"internalDate": "1564837921000",
"payload": {
"partId": "",
"mimeType": "multipart/alternative",
"filename": "",
"headers": [],
"body": {
"size": 0
},
"parts": [
{
"partId": "0",
"mimeType": "text/plain",
"filename": "",
"headers": [],
"body": {
"size": 10,
"data": "SXRzIEJvZHkNCg=="
}
},
{
"partId": "1",
"mimeType": "text/html",
"filename": "",
"headers": [],
"body": {
"size": 47,
"data": "PGRpdiBkaXI9Imx0ciI-SXRzIEJvZHk8YnIgY2xlYXI9ImFsbCI-PC9kaXY-DQo="
}
}
]
},
"sizeEstimate": 584
}
const only_inline_attachment = {
"id": "16c61fb94d1b287f",
"threadId": "16c60a9c8f51833b",
"labelIds": [],
"snippet": "Just-has-inline-attachments-Body",
"historyId": "14005012",
"internalDate": "1565011972000",
"payload": {
"partId": "",
"mimeType": "multipart/related",
"filename": "",
"headers": [],
"body": {
"size": 0
},
"parts": [
{
"partId": "0",
"mimeType": "multipart/alternative",
"filename": "",
"headers": [],
"body": {
"size": 0
},
"parts": [
{
"partId": "0.0",
"mimeType": "text/plain",
"filename": "",
"headers": [],
"body": {
"size": 78,
"data": "SnVzdC1oYXMtaW5saW5lLWF0dGFjaG1lbnRzLUJvZHkNCg0KDQpbaW1hZ2U6IEJyb256ZS1GbG9vci1MYW1wLTYwMHg2MDAuanBnXQ0K"
}
},
{
"partId": "0.1",
"mimeType": "text/html",
"filename": "",
"headers": [],
"body": {
"size": 294,
"data": "PGRpdiBkaXI9Imx0ciI-PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0ibHRyIj48ZGl2Pkp1c3QtaGFzLWlubGluZS1hdHRhY2htZW50cy1Cb2R5PC9kaXY-PGRpdj48YnI-PC9kaXY-PGRpdj48ZGl2Pjxicj48ZGl2PjxpbWcgc3JjPSJjaWQ6aWlfanl5MmtjN2IwIiBhbHQ9IkJyb256ZS1GbG9vci1MYW1wLTYwMHg2MDAuanBnIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjBweCIgd2lkdGg9IjIyNSIgaGVpZ2h0PSIyMjUiPjxicj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4NCjwvZGl2PjwvZGl2Pg0K"
}
}
]
},
{
"partId": "1",
"mimeType": "image/jpeg",
"filename": "Bronze-Floor-Lamp-600x600.jpg",
"headers": [],
"body": {
"attachmentId": "ANGjdJ-DX3652q5kW-6nNaEQL-q2zvx1Df2FV-GOfx7YfzcY2NnVkM4uMmr058QUaiAX4wsI3LybFtMB6Xaqy6ijsx2RAUg56nESumo2ecDvs-3PUgDshHJgHluwcEmpDIh7H9w6TEHteDDAs9v4jcu5xX-2_GNyeKUVK8BfGY-qYvgwVwWL5fg-TaiZ6SyrtB_w8dSOpQwtw_at25oeGRpmMh7qkLrbZ6yAkfMIXw",
"size": 91648
}
}
]
},
"sizeEstimate": 126975
}
parser(with_multi_type_attachments)
parser(with_attachmetnst)
parser(without_attachmetnst)
parser(only_inline_attachment)
Result
with_multi_type_attachments: {
"text": "This is body.\r\n\r\nInline-attachments\r\n[image: 13.jpg]\r\nmy-custom-link <http://stackoverflow.com/>\r\nmy-custom-email-address <me@work.com>\r\n\r\nEmoji:\r\np\u001f\u0018\u0002p\u001f\u0018\u000e\r\n\r\n closure.mp4\r\n<https://drive.google.com/file/d/1Uz8pzhjhxP-woG9tQdhc6GXvDl3aJRKu/view?usp=drive_web>\r\n",
"html": "<div dir=\"ltr\"><br><div class=\"gmail_quote\"><div dir=\"ltr\"><div>This is body.</div><div><br></div><div>Inline-attachments<br></div><div><div><img src=\"cid:ii_jyyi68260\" alt=\"13.jpg\" style=\"margin-right:0px\" width=\"225\" height=\"225\"><br><a href=\"http://stackoverflow.com/\" target=\"_blank\">my-custom-link</a><a href=\"mailto:me@work.com\" target=\"_blank\"><br>my-custom-email-address</a></div><div><br></div><div>Emoji:<br></div><div>p\u001f\u0018\u0002p\u001f\u0018\u000e</div><div><br></div><div class=\"gmail_chip gmail_drive_chip\" style=\"width:396px;height:18px;max-height:18px;background-color:#f5f5f5;padding:5px;color:#222;font-family:arial;font-style:normal;font-weight:bold;font-size:13px;border:1px solid #ddd;line-height:1\" contenteditable=\"false\"><a href=\"https://drive.google.com/file/d/1Uz8pzhjhxP-woG9tQdhc6GXvDl3aJRKu/view?usp=drive_web\" target=\"_blank\" style=\"display:inline-block;max-width:366px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;padding:1px 0;border:none\"><img style=\"vertical-align: bottom; border: none;\" src=\"https://ssl.gstatic.com/docs/doclist/images/icon_10_generic_list.png\">B <span dir=\"ltr\" style=\"color:#15c;text-decoration:none;vertical-align:bottom\">closure.mp4</span></a></div></div></div></div></div>\r\n",
"attachments": [{
"partId": "1",
"mimeType": "image/jpeg",
"filename": "attachment-1.jpg",
"body": {
"attachmentId": "ANGjdJ_M5qM10ANxuQiqn7xLsqGiB01ZfnkpzDd186JRI7NxB7l9nA2xN3EmhKygGyG4aSWeHiZeo-R9NXDG-HKWIDnuOwLoAiLLggvsQ5qlXwsGhKS7f383YaVJs8joI1Q5JtsepWPkBaBCR2wPviMt4mX_L5M7Em8GzKVtLh7fuPFbXguaHIUoyhCXP6mnKXQmNiyaatPvlB7_KPgi7h5wD9gDctpPSu59mUs-9Q",
"size": 707870
}
}, {
"partId": "2",
"mimeType": "video/mp4",
"filename": "closure.mp4",
"body": {
"attachmentId": "ANGjdJ9iIPaAkkhk7mNFzOU5lQuNMRmiMxgZVY1NDsO-p6XvvbyoEqNgRqz4pepUK5HcGpOGJRMHB0ec9_wlHYbNfhr6aPvdIRO-VD4-Baw55yHgZ8KWhHAiZ3l-BY5nTB6B1xpRwEqKoun52EkPDCRf8g87tEOtq7p4ut02hg",
"size": 7261025
}
}, {
"partId": "0.1",
"mimeType": "image/jpeg",
"filename": "13.jpg",
"body": {
"attachmentId": "ANGjdJ-BkrF-Gf3L_44M9RIu8clbEbFwu0xLlfL3YOEja7y5pxZecT7YfI6hnI6-PvJ9G-w6orcWYN9jgYAOsHBCBFHezwihjdVWKBYkGB9gmdCBFVK0XKHhGODyMPJLTW2kbbhyTLFBDjEo33Tld7XMtbRAvULGV_Z6mue8XdNAfxcAnhNOGZ48Pi7y_IugKIIXZ_DAD3JvALMxctRONavk7_-oOtf09ksIQPshaA",
"size": 58159
}
}]
}
with_attachmetnst: {
"text": "With-Attachment-Body\r\n\r\n\r\n[image: droped-ing.jpg] <http://droped-ing.jpg>\r\n",
"html": "<div dir=\"ltr\"><div>With-Attachment-Body</div><div><br></div><div><br></div><div><div><a href=\"http://droped-ing.jpg\"><img src=\"cid:ii_jyuks86t0\" alt=\"droped-ing.jpg\" style=\"margin-right: 0px;\" width=\"223\" height=\"223\"></a><br></div></div></div>\r\n",
"attachments": [{
"partId": "1",
"mimeType": "image/jpeg",
"filename": "attached-img.jpg",
"body": {
"attachmentId": "ANGjdJ-wHL_YHq_zUYZ4AyCHdstehG_7lhh21SXnzvf_33oECSiFcua3UTEbO2u5gSrEVDS4xvdnQa4e2JFb5olkMbv8rBuAprlADc_99pG_X-kf9gjhCiEIPPpr66S7VkB2Wumh9rBFc0bN6j_8mEjoGEBDAyd7lb38SiY8A6v2TP2o9gaKucYfIB__tiQ4Z1C-pSipyNmToCJfE87TuFp_ukQtDQbrVyG1bEoy2w",
"size": 44988
}
}, {
"partId": "2",
"mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"filename": "Motivation Letter Sample.docx",
"body": {
"attachmentId": "ANGjdJ9c8IKsgC8Do8iAyDHHGiyiho_zv8eI4BkaW_kvnl7--webl9P01xGWTyCwTRblgClK6dE2JH8P7hNd007ZK-CIU5Stwuc6Mp2v-KHC3slmCfko--JRrU1-EotFJqrnr3gmRw9qZgWlCqKxqiJAo1afE67LtwBSuR_frjCCUPH7RuxdY6mP_WJHSP6XA6i5uyhWaRGpnMOzawbTdq1_ZSKo9mjF__dDOsdrlQ",
"size": 7136
}
}, {
"partId": "0.1",
"mimeType": "image/jpeg",
"filename": "droped-ing.jpg",
"body": {
"attachmentId": "ANGjdJ-hNpJEK_gzrYEsdQODp-Zwe5QoJP5ONsOy5JoSUC1Qk5Po7KgL_AJnMddPRZ1GWpltr-XRtXv3zS5TTUYJxf7BBZyitkMNH9Kv_rnArqXLJyBOqfL1wNqAJPeQrCzUjk6d0ahqAl6ixNyCCgTu-fxvngaBllXU5pTI3_iL6jWXoin6LoQ-a32vhKs319tChOz5GBuTCTov9oZqTtJPvj1yIqLAmUf8vochDQ",
"size": 43716
}
}]
}
without_attachmetnst: {
"text": "Its Body\r\n",
"html": "<div dir=\"ltr\">Its Body<br clear=\"all\"></div>\r\n",
"attachments": []
}
only_inline_attachment: {
"text": "Just-has-inline-attachments-Body\r\n\r\n\r\n[image: Bronze-Floor-Lamp-600x600.jpg]\r\n",
"html": "<div dir=\"ltr\"><br><div class=\"gmail_quote\"><div dir=\"ltr\"><div>Just-has-inline-attachments-Body</div><div><br></div><div><div><br><div><img src=\"cid:ii_jyy2kc7b0\" alt=\"Bronze-Floor-Lamp-600x600.jpg\" style=\"margin-right:0px\" width=\"225\" height=\"225\"><br></div></div></div></div>\r\n</div></div>\r\n",
"attachments": [{
"partId": "1",
"mimeType": "image/jpeg",
"filename": "Bronze-Floor-Lamp-600x600.jpg",
"body": {
"attachmentId": "ANGjdJ-DX3652q5kW-6nNaEQL-q2zvx1Df2FV-GOfx7YfzcY2NnVkM4uMmr058QUaiAX4wsI3LybFtMB6Xaqy6ijsx2RAUg56nESumo2ecDvs-3PUgDshHJgHluwcEmpDIh7H9w6TEHteDDAs9v4jcu5xX-2_GNyeKUVK8BfGY-qYvgwVwWL5fg-TaiZ6SyrtB_w8dSOpQwtw_at25oeGRpmMh7qkLrbZ6yAkfMIXw",
"size": 91648
}
}]
}