如何检查是否存在附加到 Outlook 邮件项目(电子邮件)的有效电子邮件(数字)签名



有什么办法可以

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

在这方面,我几乎仅限于 VBA。 我尝试检查发件人和邮件项目对象,但我看不到有关签名对象的任何信息。

Outlook

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

您可以在OutlookSpy

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

如果您想

区分签名/加密邮件和常规邮件,您几乎仅限于扩展 MAPI(仅限 C++ 或 Delphi)或赎回(我是它的作者 - 任何语言 - 它包装扩展 MAPI)。Redemption 公开 RDOEncryptedMessage 对象。可以使用从 OOM 中的MailItem.EntryID属性检索的条目 ID 从RDOSession.GetMessageFromID检索它。

相关内容

最新更新