【问题标题】:How to know if attachment is a signature in an Outlook email如何知道附件是否是 Outlook 电子邮件中的签名
【发布时间】:2012-02-03 07:04:55
【问题描述】:

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

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

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

但我收到了 Outlook 安全警报。

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

感谢您的宝贵时间。

【问题讨论】:

    标签: c# email outlook outlook-redemption


    【解决方案1】:

    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 属性,它会跳过几个环节来确定附件是否是嵌入图像和不是“真正的”附件。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-25
        • 2023-03-22
        • 2011-03-22
        • 1970-01-01
        相关资源
        最近更新 更多