阅读SMIME加密电子邮件的正文
问题描述:
我有一个Outlook插件,它使用ItemSend事件处理外发电子邮件。作为处理的一部分,我阅读了传出电子邮件的正文和附件。 当用户在一个环境中加密电子邮件(SMIME)时,我的插件无法读取电子邮件的正文 - PR_BODY_W属性(我假设正文位于smime.p7m中)。但是,在不同的环境中,我的插件会找到并成功读取PR_BODY_W。阅读SMIME加密电子邮件的正文
我不知道我的读取PR_BODY_W的能力取决于在Outlook加密邮件之前还是之后调用ItemSend回调?这是可配置的吗?
答
Outlook始终将经过签名和加密的邮件表示为常规IPM.Note项目。即使MailItem.MAPIOBJECT是一个假IMessage对象。
如何检索PR_BODY?
使用mapiObject-> OpenProperty( PR_BODY_W, (LPIID)IID_IStream, STGM_READ, 0, &readStream);我还注意到,当我使用Outlook对象模型检索正文(而不是MAPI)时,它适用于所有环境 – DenisY
您是否尝试先调用MailItem.Save? –
是的,我确实打电话保存 – DenisY