如何知道附件是否是Outlook电子邮件中的签名

本文关键字:电子邮件 Outlook 何知道 是否是 | 更新日期: 2023-09-27 18:22:15

我有一封Outlook电子邮件,需要处理它的附件。但是当遍历附件时,如果附件是签名,我想跳过它

要知道附件是否是我正在使用的签名:

outlookMailItem.Attachments[i].PropertyAccessor.GetProperty(
    "http://schemas.microsoft.com/mapi/proptag/0x3712001E");

但我收到了Outlook安全警报。

有没有其他方法可以使用更安全的代码?可以使用Redemption完成吗?

如何知道附件是否是Outlook电子邮件中的签名

PR_ATTACH_CONTENT_ID属性很好地表明附件是嵌入图像,但有些附件设置了PR_ATTACH_CONTENT_ID属性,但它们不是嵌入图像(Lotus Notes喜欢在所有附件上设置PR_ATTACH_CONTENT_ID)。即使未设置PR_ATTACH_CONTENT_ID,Outlook也可以使用PR_ATTACH_CONTENT_LOCATIONPR_ATTACH_LONG_FILENAME加载嵌入图像。唯一真正的测试是解析HTML正文并找出哪些<img>标记引用了附件。Redemption(我是它的作者)将允许您使用RDOAttachment访问该属性。在字段中,您也可以使用RDOAattachment.Hiddden属性,它会跳过几个环节来判断附件是否是嵌入图像,而不是";真实的";附件

RDOAttachment.Hidden属性只有在电子邮件格式为HTML时才能正常工作。对于富文本格式的电子邮件,签名图像将被视为任何其他附件,并且该值为false。更好的选择是使用"Attachment.Type",它适用于HTML和Rich Text。对于签名,它将始终是olOLE,而对于其他附件,它将是olByValue。因此,您可以使用此属性过滤签名图像。但是,请注意,如果电子邮件格式为Rich Text,并且您在电子邮件中嵌入了屏幕截图,则将其视为olOLE类型。