如何区分 exchangelib 中的附件类型?

How can I distinguish between attachment types in exchangelib?

我刚刚注意到 Microsoft OWA 不显示某些附件。有些人在页脚(附件)中使用图像。我不确定 "normal" 附件和这个嵌入式附件之间的唯一区别是否是它嵌入在电子邮件中。

还有什么区别吗? 如何才能只获取 OWA* 显示为附件的附件?

* 可能还有大多数其他电子邮件客户端;我想我在 Google 邮件

中看到了类似的行为

这些附件有一个 content_id。它们在 mail.body 中被引用为 cid:[CONTENT-ID]。 content_id 看起来像这样:

cid:image001.jpg@01D3151A.F9036A80

其中 image001.jpg 是文件名。

在邮件正文中查找 cid:image_name 无法找到 src 引用 link 而不是 cid 的嵌入图像。

所以最好的解决方案是使用 attachments.is_inline 属性 内置在 exchangelib 中。

    for attachment in msg.attachments:
        if msg.has_attachments == True:
            if isinstance(attachment, FileAttachment):
                if attachment.is_inline:
                    print("Embeded Image")
                else:
                    print("Normal Attachment")

参考:https://github.com/ecederstrand/exchangelib/issues/562