如何从 Outlook 加载项中的 Exchange 邮箱读取自定义属性
How to read Custom Attributes from Exchange mailbox in Outlook Add-in
用户使用 Outlook 2013 并在 Office365 中拥有帐户。我想在 Outlook 中创建类似 window 的地址簿。所以我创建了新的 Outlook 2013 加载项来显示用户列表。代码如下所示:
var list = Globals.ThisAddIn.Application.Session.GetGlobalAddressList();
var users = list.AddressEntries.Cast<AddressEntry>()
.Where(ae => ae.AddressEntryUserType == OlAddressEntryUserType.olExchangeUserAddressEntry).ToList());
并且有效。但作为交换,邮箱具有自定义属性并且设置了一些主题。我想在我的列表中显示这些属性,但我不知道如何检索它们。
在 Powershell 中你可以这样做:
Get-Mailbox -Identity alexB | FL
您可以看到此对象具有 "CustomAttribute1"、"CustomAttribute2" 等属性...如何在 outlook 加载项中执行相同操作。
Outlook 对象模型不提供任何 属性 或属性方法。您可以尝试使用任何低级 属性 资源管理器,例如 MFCMAPI 或 Outlook Spy 来观察隐藏属性。
经过多次 OutlookSpy 崩溃后,我发现了这个 :) 要获得自定义属性编号 6,您必须调用:
var prope = user.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x8032001E");
属性:
- #7 = 0x8033001E
- #8 = 0x8034001E
- ...
用户使用 Outlook 2013 并在 Office365 中拥有帐户。我想在 Outlook 中创建类似 window 的地址簿。所以我创建了新的 Outlook 2013 加载项来显示用户列表。代码如下所示:
var list = Globals.ThisAddIn.Application.Session.GetGlobalAddressList();
var users = list.AddressEntries.Cast<AddressEntry>()
.Where(ae => ae.AddressEntryUserType == OlAddressEntryUserType.olExchangeUserAddressEntry).ToList());
并且有效。但作为交换,邮箱具有自定义属性并且设置了一些主题。我想在我的列表中显示这些属性,但我不知道如何检索它们。
在 Powershell 中你可以这样做:
Get-Mailbox -Identity alexB | FL
您可以看到此对象具有 "CustomAttribute1"、"CustomAttribute2" 等属性...如何在 outlook 加载项中执行相同操作。
Outlook 对象模型不提供任何 属性 或属性方法。您可以尝试使用任何低级 属性 资源管理器,例如 MFCMAPI 或 Outlook Spy 来观察隐藏属性。
经过多次 OutlookSpy 崩溃后,我发现了这个 :) 要获得自定义属性编号 6,您必须调用:
var prope = user.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x8032001E");
属性:
- #7 = 0x8033001E
- #8 = 0x8034001E
- ...