4

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

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

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

但我收到了 Outlook 安全警报。

还有另一种使用更安全代码的方法吗?可以使用救赎来完成吗?

感谢您的时间。

4

2 回答 2

9

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 .Fields 访问该属性,您还可以使用RDOAttachment .Hidden 属性,它会跳过几个环节来确定附件是否是嵌入图像而不是“真实”附件。

于 2012-02-03T07:22:55.103 回答
1

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

于 2014-12-10T00:27:01.383 回答