Я использую Microsoft Graph для извлечения данных электронной почты из почтового ящика. Когда я получаю контент, я нахожу встроенные изображения с таким содержимым:
<img id="_x0000_i1029" width="1366" height="672" data-outlook-trace="F:1|T:1" src="cid:image005.png@01D4DE3D.90A3C410" style="width:14.2291in; height:7.0in">
Когда свойство hasAttachments имеет значение true, я ищу изображения, которые соответствуют и заменяют содержимое, и оно отлично работает. Проблема в том, что я вижу теги встроенного изображения в сообщениях, где hasAttachments - ложь.
hasAttachments
Где я могу получить данные изображения? График говорит, что в сообщении нет вложений, но явно есть встроенные изображения?
Обратите внимание, что изображение отображается в Outlook для Интернета с таким тегом:
<img data-imagetype="AttachmentByCid" originalsrc="cid:image005.png@01D4DE3D.90A3C410" data-custom="AAMkADY1YjgxM2Y4LTE5NTUtNDBjMy1iZDY0LWIzN..." naturalheight="672" naturalwidth="1366" src="https://attachments.office.net/owa/mailboc@mydomain.onmicrosoft.com/service.svc/s/GetAttachmentThumbnail?id=AAMkADY1YjgxM2Y4LTE5NTUtNDBjMy1iZDY0LWIzN...&thumbnailType=2&owa=outlook.office365.com&scriptVer=2019031102.10&X-OWA-CANARY=kKWSUkiFW0WjlPXXXXXXXXX.&token=eyJhbGciOiJSU...&animation=true" id="_x0000_i1029" data-outlook-trace="F:1|T:1" style="width: 1024.49pt; height: 504pt; cursor: pointer;" crossorigin="use-credentials" >
Используя Microsoft Graph API, вы можете получить все вложения письма:
GET https://graph.microsoft.com/v1.0/me/messages/{id}/attachments
или
GET https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}/messages/{id}/attachments
Когда вы получите все вложения, вы можете проверить свойство isInline, чтобы найти встроенныйimages.
isInline
Вы можете получать вложения, даже если в сообщении электронной почты свойство hasAttachments установлено в значение false, поскольку это свойство связано с не встроенными вложениями.