我有一个C ++ Oulook插件,可以读取外发电子邮件(在ItemSend事件期间)并进行分析。发送电子邮件并添加RMS权限时,传出电子邮件的PR_BODY_W属性包含(而不是真实正文):
This message is protected with Microsoft Information Protection. You can
open it using Microsoft Outlook, which is available for iOS, Android,
Windows, and Mac OS. Get Outlook for your device here:
https://aka.ms/protectedmessage.
Microsoft Information Protection allows you to ensure your emails can't be
copied or forwarded without your permission. Learn more at https://microsoft.com/rms.
通过调用MailItem.Body属性,可以使用Outlook对象模型成功检索到实体。
但是,有没有一种方法可以使用MAPI而非OOM读取正文?
答案 0 :(得分:2)
PR_BODY中的文本实际上是真实的主体。但是,当Outlook在邮件中找到RMS附件时,它将用在该附件中找到的内容替换为真实正文。 OOM为您屏蔽了此行为。使用MAPI,您必须自己进行解码。
Outlook / Exchange邮件中的RMS附件受[MS-OXORMMS]: Rights-Managed Email Object Protocol约束。具体来说,您对Opening a Rights-Managed Email Message感兴趣。
这是总体轮廓:
知道所有这些都是由OXORMMS控制的,我们可以在GitHub上找到以下项目,这可能是有启发性的:https://github.com/damico/test-inflate-rms。