如何在Outlook的VSTO插件中获取Outlook的Web插件ItemId?

问题描述

您知道,您可以在Visual Studio上为Outlook创建Web和VSTO AddIns,但是我在检索VSTO AddIns上的项目ID时遇到了麻烦,因为MailItem对象中没有此类属性

在Web插件中,您可以像这样检索所述属性,此行为实际上包含在插件模板中:

(function () {
Office.onReady(function () {
    $(document).ready(function () {
        loadItemProps(Office.context.mailBox.item);
    });
});

function loadItemProps(item) {
    $('#item-id').text(item.itemId);
}
})();

但是在VSTO AddIns中,使用MailItem对象,您只能检索其他值,例如ConversationID或EntryID,而这些值对我不起作用。

之所以需要ItemId,是因为该值已发送到PowerApps以加载一个应用程序,该应用程序加载了与电子邮件相关的内容(例如附件文件),而PowerApps中的GetEmail函数无法理解其他值,例如EntryID,它需要一个messageId。

我已经读过这个question,但它只返回看似是电子邮件地址的内容,而不是您可以通过Web插件获得的值。

解决方法

我们的团队在VSTO / COM加载项上没有很多专业知识,因此可能还有其他解决方案...但是可以通过EWS方法ConvertId将EntryID转换为EWSId

https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/convertid-operation