如何区分 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")
我刚刚注意到 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")