如何从GAL(全局地址列表)中获取addressEntry对象的精确匹配

时间:2015-03-04 05:07:50

标签: c# outlook

我想使用C#中的以下代码在全局地址列表中搜索addressEntry对象。



Microsoft.Office.Interop.Outlook.Application app = new Outlook.Application();
Outlook.AddressList gal = app.Session.GetGlobalAddressList();
Outlook.AddressEntry entry = gal.AddressEntries[name];




但我得到了第一个匹配的名字,这是不正确的。我想将别名或primarySMTPAddress(mailId)作为索引传递,唯一。给我传递唯一值的方法来获取精确的addressEntry对象。获取所有匹配的addressEntry对象的其他方法。

您可以为下面的代码段建议可能的索引参数。



Outlook.AddressEntry entry = gal.AddressEntries[name];




1 个答案:

答案 0 :(得分:-1)

您需要遍历所有项目以找到完全匹配。 Outlook对象模型不提供任何方法或属性。

使用低级代码(扩展MAPI)作为Dmitry建议您可以在PR_ANR上创建RES_PROPERTY限制,并在相应IABContainer对象的内容表上调用IMAPITable :: Restrict。这与Outlook在针对特定容器解析名称并显示模糊名称对话框时使用的限制相同。