C# 如何访问Outlook插件中的EWS`UniqueId`字段

C# 如何访问Outlook插件中的EWS`UniqueId`字段,c#,outlook,vsto,exchangewebservices,C#,Outlook,Vsto,Exchangewebservices,我们有一个VSTO Outlook插件,它使用.net Interop包装器v15为电子邮件添加额外的元数据,然后通过EWS将这些元数据拉入我们的主应用程序。我们使用EmailMessage.Id.UniqueId字段标识应用程序中的电子邮件。新功能要求我们的Outlook插件能够将当前打开的电子邮件与应用程序中的记录相匹配,理想情况下不需要完全重新设计我们在应用程序中识别电子邮件的方式:有没有办法访问Outlook中的EWS UniqueId字段?我可以看到_MailItem.Conversa

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

您可以使用ConvertId操作在OOM中通过MailItem.ENTRYID公开的PR\u ENTRYID和EWS id之间进行转换-请参阅

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