如何从Outlook加载项中的Exchange邮箱中读取自定义属性

时间:2015-01-06 10:12:52

标签: c# outlook office-interop office365

用户使用Outlook 2013并在Office365中拥有帐户。我想在Outlook中创建类似于Address Book的窗口。所以我创建了新的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加载项中执行相同的操作。

2 个答案:

答案 0 :(得分:2)

在许多OutlookSpy崩溃后,我发现了这个:)要获得自定义属性编号6,您必须调用:

var prope = user.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x8032001E");

属性:

  • #7 = 0x8033001E
  • #8 = 0x8034001E
  • ...

答案 1 :(得分:1)

Outlook对象模型不提供属性的任何属性或方法。您可以尝试使用任何低级属性资源管理器(如MFCMAPI或Outlook Spy)来观察隐藏属性。