Outlook.MailItem.EntryID 和 Mapi32.dll MessageID 之间的区别

Posted

技术标签:

【中文标题】Outlook.MailItem.EntryID 和 Mapi32.dll MessageID 之间的区别【英文标题】:Difference between Outlook.MailItem.EntryID and Mapi32.dll MessageID 【发布时间】:2018-06-14 01:09:03 【问题描述】:

我需要从 Outlook VBO 执行一些功能。假设我正在从 outlook.mailitem 下载附件。因此,我确实通过在 OutLook.MailItem.EntryID 前面添加了这些文件来保存这些文件,其中 EntryID 对于每封电子邮件都是唯一的。

现在,我有另一个使用 Mapi32.dll 并且需要访问文件的功能或应用程序。所以我使用 MessageID 属性来获取文件,但问题是当我从 Mapi32.dll 检索 MessageID 属性时,它返回类似 AAAAAKHslFt5unxKlnJ80RmsEX8HAEYxSGm4YvNPlCN7Kj9X/A8AAAAAAQwAAEYxSGm4YvNPlCN7Kj9X/A8AAOy+SWQAAA

但 Outlook 中的 EntryID 是 1DCBEE7832C89149AFAEBC41B53EAB85

我认为EntryID 和MessageID 是相同的,但它是从MapiEx 加密的吗?我怎样才能解密它以获得原始的 EntryID ?或者 Outlook.MailItem 对象和 Mapi32.dll MailMessage 对象之间是否有任何其他公共属性可以用来在两个工具之间共享信息?

【问题讨论】:

我不明白你从哪里得到 base 64 字符串。你能分享一些你的“mapi32.dll”代码吗? 【参考方案1】:

前者看起来像一个 base64 编码的条目 id。后者看起来很奇怪 - 条目 ID 通常以 4 个二进制 0 开头(十六进制表示法中的八个“0”)。

【讨论】:

以上是关于Outlook.MailItem.EntryID 和 Mapi32.dll MessageID 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章