如何在Outlook C#中枚举自定义用户属性的值

时间:2019-07-29 15:26:14

标签: outlook vsto outlook-addin

我已经在Outlook中创建了名为“所有权”的自定义用户属性。当团队中某人声称拥有电子邮件的所有权时,该人的姓名将保存为电子邮件的值。

我的问题是,有什么方法可以将这个自定义属性的所有值枚举到组合框中。

简单地说,获取所有团队成员姓名的列表(在收件箱文件夹中声称拥有电子邮件所有权的人)。

我想做这样的事情。

Outlook.UserDefinedProperties userDefinedProperties = null;
Outlook.UserDefinedProperty userDefinedProperty = null;

Outlook.MAPIFolder currentFolder = application.ActiveExplorer().CurrentFolder;
mailUserProperties = currentFolder.UserDefinedProperties;
mailUserProperty = mailUserProperties["Ownership"];

// Filling up the combo box
PersonCombo.Items.Add(userDefinedProperty.Value);

我想使用当前文件夹,因为文件夹将具有所有值,而电子邮件只能具有一个自定义属性值。

如果这不可能,还有其他方法可以完成吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

没有一个查询会返回特定命名属性的所有唯一值。最好的办法是搜索属性存在的所有项目(不为null),然后构建唯一值列表。

但是,我认为这不是存储可能值的一种好方法-实际上,它必须是单个来源,例如特定的GAL分发列表,或存储所有可能值的文件夹中的隐藏(关联)消息在一个属性中。

答案 1 :(得分:0)

感谢大家的投入。 最后,我按照Dmitry的建议创建了GAL分发列表,并将其用于我的目的。