【问题标题】:How do I check for the presence of a valid email (digital) signature attached to an Outlook MailItem (email message)?如何检查附加到 Outlook MailItem(电子邮件)的有效电子邮件(数字)签名是否存在?
【发布时间】:2022-05-01 02:14:19
【问题描述】:

有什么办法

  1. 使用 VBA 检索附加到 MailItem 的数字签名?
  2. 使用 VBA 验证其有效性?

在这方面,我几乎只限于 VBA。我已尝试检查 Sender 和 MailItem 对象,但我看不到任何有关 Signature 对象的信息。

【问题讨论】:

标签: vba email outlook


【解决方案1】:

Outlook 始终将签名/加密邮件表示为常规 "IPM.Note MailItem" 对象。它甚至从MailItem.MAPIOBJECT 属性返回一个假的IMessage MAPI 接口。

您可以在OutlookSpy(我是它的作者)中看到这一点 - 选择一个签名的消息,单击 OutlookSpy 功能区上的 IMessage 按钮。 PR_MESSAGE_CLASS 将是 IPM.Note。选择PR_ENTRYID 属性,右击,选择IMAPISession::OpenEntry。您将通过PR_MESSAGE_CLASS = IPM.Note.SMIME.MultipartSigned 取回真实消息。您可以看到包含数据的附件。

如果您想将签名/加密的消息与常规消息区分开来,您几乎只能使用扩展 MAPI(仅限 C++ 或 Delphi)或 Redemption(我是它的作者 - 任何语言 - 它包含扩展 MAPI)。赎回暴露了RDOEncryptedMessage 对象。您可以使用从 OOM 中的 MailItem.EntryID 属性检索到的条目 id 从 RDOSession.GetMessageFromID 检索它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多