3

我正在使用 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为真时,我会寻找匹配并替换内容的图像,并且效果很好。问题是我在错误的消息中看到这样的嵌入图像标签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" >
4

1 回答 1

3

使用 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以查找嵌入的图像。

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

于 2019-03-28T10:28:09.247 回答