如何使用 MAPI 分离内联图像和附件?

问题描述 投票:0回答:3

我的程序使用 MAPI 来处理 Exchange 邮箱。问题是,如果用户启动 Outlook,添加一个文件作为附件,同时打开“画图”,选择其中的一个区域,将其复制到剪贴板并粘贴到邮件正文中,则生成的邮件会显示两个附件。

更具体地说,程序调用

IMAPIMessage::GetAttachmentsTable()
来检索附件表,并且该表包含两个对象。有没有一种方法可以让程序确定“附件”是否真的是附加文件还是内联内容的一部分?

windows email outlook mapi
3个回答
1
投票

您需要检查 HTML 正文(通过 img 标签)是否引用附件,无论是通过 img:cid 和 PT_ATTACH_CONENTS_ID 属性还是通过文件名 (PR_ATTACH_LONG_FILENAME) 或内容位置 (PR_ATTACH_COMTENT_LOCATION)。


0
投票

非常老的问题,但更好的选择是寻找 PR_ATTACHMENT_HIDDEN。如果已设置,则它是内嵌图像,并且在查看电子邮件时不会显示为常规附件。


-1
投票

您要查找的属性是 PR_RENDERING_POSITION (0x370B0003)。 -1 表示附件是“正常”附件并且不是内嵌的。如果该值为 -1 以外的任何值,则表示内嵌附件,并且该值是正文中附件应渲染的位置。

这里是描述它的 MSDN 页面


编辑:

德米特里,我不同意你的评论。我有带有内联附件的 HTML 电子邮件,并且 PR_RENDERING_POSITION 正在按照我发布的 MSDN 页面中的描述工作。

© www.soinside.com 2019 - 2024. All rights reserved.