当没有附件时,如何从 Microsoft Graph 检索嵌入图像数据?

Cle*_*ter 6 microsoft-graph-mail microsoft-graph-api

我正在使用 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">
Run Code Online (Sandbox Code Playgroud)

当该属性hasAttachments为 true 时,我会查找匹配并替换内容的图像,效果很好。问题是我在消息上看到这样的嵌入图像标签,其中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...&amp;thumbnailType=2&amp;owa=outlook.office365.com&amp;scriptVer=2019031102.10&amp;X-OWA-CANARY=kKWSUkiFW0WjlPXXXXXXXXX.&amp;token=eyJhbGciOiJSU...&amp;animation=true" 
     id="_x0000_i1029" 
     data-outlook-trace="F:1|T:1" 
     style="width: 1024.49pt; height: 504pt; cursor: pointer;" 
     crossorigin="use-credentials" >
Run Code Online (Sandbox Code Playgroud)

小智 7

使用 Microsoft Graph API 您可以获取邮件的所有附件:

GET https://graph.microsoft.com/v1.0/me/messages/{id}/attachments
Run Code Online (Sandbox Code Playgroud)

或者

GET https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}/messages/{id}/attachments
Run Code Online (Sandbox Code Playgroud)

获得所有附件后,您可以检查属性isInline以查找嵌入的图像。

即使电子邮件的属性hasAttachments设置为 false,您也可以获得附件,因为该属性与非内联附件相关。