如何在 Outlook 插件中访问 EWS `UniqueId` 字段

Posted

技术标签:

【中文标题】如何在 Outlook 插件中访问 EWS `UniqueId` 字段【英文标题】:How to access EWS `UniqueId` field in Outlook plugin 【发布时间】:2018-11-08 15:05:12 【问题描述】:

我们有一个使用 .net Interop 包装器 (v15) 的 VSTO Outlook 插件,它向电子邮件添加额外的元数据,然后我们通过 EWS 将其拉入我们的主应用程序。我们使用EmailMessage.Id.UniqueId 字段识别应用程序中的电子邮件。新功能要求我们的 Outlook 插件能够将当前打开的电子邮件与我们的应用程序中的记录相匹配,理想情况下无需完全重新设计我们在应用程序中识别电子邮件的方式:) 有什么方法可以访问 Outlook 中的 EWS UniqueId 字段?我可以看到_MailItem.ConversationID_MailItem.EntryID 字段,但即使在转换十六进制字符串-> base64 之后它们也不匹配(并且长度错误)。谷歌搜索我发现了对 ConvertId 函数的引用,但这似乎是 EWS 功能,我需要在 Outlook 中调用一些东西。

【问题讨论】:

你找到任何方法了吗?谢谢 恐怕不行,对不起 【参考方案1】:

您可以使用 ConvertId 操作在 PR_ENTRYID(通过 MailItem.EntryID 在 OOM 中公开)和 EWS id 之间进行转换 - 请参阅 https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/convertid-operation

【讨论】:

感谢您的回复 - 但 ConvertId 操作似乎是我在问题中提到的 EWS API?我还没有检查它在实践中是否有效,但是 Outlook 插件调用它自己的 EWS 后端感觉非常错误,是否没有暴露它的 Outlook 插件 API? 不,没有用于转换 ID 的客户端 API。为此,您需要使用 EWS。请注意,您的 EWS 端可以将 EWS id 存储为扩展属性之一,您可以从插件中检索它。

以上是关于如何在 Outlook 插件中访问 EWS `UniqueId` 字段的主要内容,如果未能解决你的问题,请参考以下文章

Outlook 365 EWS 流式通知 |如何计算发送和接收消息所需的时间?

从 EWS 创建 Outlook 用户属性

通过 EWS 检索 Outlook Office365 标记的属性

使用 EWS 添加新的 Outlook 联系人以自动完成?

从 Java 应用程序调用 https://outlook.office365.com/EWS/Exchange.asmx 时出现随机 SSLHandshakeException

EWS send mail meeting, read meeting message