我的程序使用Excel来处理Exchange邮箱。问题是,如果用户打开Outlook,添加一个文件作为附件,同时打开Paint,选择一个区域,将其复制到剪贴板并粘贴到邮件正文中,则生成的邮件将显示两个附件。更具体地说,程序调用IMAPIMessage::GetAttachmentsTable()来检索附件表,该表包含两个对象。有没有一种方法可以让程序判断“附件”是附件还是内联内容的一部分?
IMAPIMessage::GetAttachmentsTable()
8dtrkrch1#
您需要检查HTML主体(通过img标记)是否引用附件,通过img:cid和PT_ATTACH_CONENTS_ID属性,或者通过文件名(PR_ATTACH_LONG_FILENAME)或contnet位置(PR_ATTACH_COMTENT_LOCATION)。
vsikbqxv2#
一个更好的选择是查找PR_ATTACHMENT_HIDDEN。如果它被设置,那么它是一个内联图像,在查看电子邮件时不会显示为常规附件。
PR_ATTACHMENT_HIDDEN
svgewumm3#
您正在查找的属性是PR_RENDERING_POSITION(0x 370 B 0003)。-1表示附件是“普通”附件,不是内联附件。如果该值不是-1,则表示内联附件,该值是附件在正文中应呈现的位置。下面是MSDN page描述它。编辑:德米特里,我不同意你的评论。我有HTML电子邮件与行内附件和PR_RENDERING_POSITION是工作中所描述的MSDN页面我张贴。
3条答案
按热度按时间8dtrkrch1#
您需要检查HTML主体(通过img标记)是否引用附件,通过img:cid和PT_ATTACH_CONENTS_ID属性,或者通过文件名(PR_ATTACH_LONG_FILENAME)或contnet位置(PR_ATTACH_COMTENT_LOCATION)。
vsikbqxv2#
一个更好的选择是查找
PR_ATTACHMENT_HIDDEN
。如果它被设置,那么它是一个内联图像,在查看电子邮件时不会显示为常规附件。svgewumm3#
您正在查找的属性是PR_RENDERING_POSITION(0x 370 B 0003)。-1表示附件是“普通”附件,不是内联附件。如果该值不是-1,则表示内联附件,该值是附件在正文中应呈现的位置。
下面是MSDN page描述它。
编辑:
德米特里,我不同意你的评论。我有HTML电子邮件与行内附件和PR_RENDERING_POSITION是工作中所描述的MSDN页面我张贴。