Pat*_*ick 6 c# outlook-object-model
我正在开发一个应用程序,允许用户查看他们有权访问的收件箱的内容。我很难找到一种搜索全局地址列表的方法,而不是
AddressEntries entries = global.AddressEntries;
AddressEntry entry = entries["search value"];
Run Code Online (Sandbox Code Playgroud)
这有效但只返回一个实例,它是第一个找到的实例。如果有多个结果,我基本上想向用户提供一个列表。
其次,我希望能够查看联系方式,但是当我使用
ContactItem contact = entry.GetContact();
Run Code Online (Sandbox Code Playgroud)
它总是返回null,我认为是因为它正在查看当前用户的联系人个人列表
如果有意义的话,我想我正在尝试在 Outlook 中创建一个简单版本的全局通讯簿窗口。
无论如何,如果有人有任何想法或参考,我将不胜感激!
谢谢帕特里克
您应该能够从当前配置文件中获取全局地址列表,如下所示。
Outlook.AddressLists addrLists = Application.Session.AddressLists;
Outlook.AddressList gal = addrLists["Global Address List"];
Run Code Online (Sandbox Code Playgroud)
然后你可以枚举和显示那个成员AddressList。
MSDN here 上描述了另一种方法来执行此操作。
如何:枚举全局地址列表中的条目
string[] names;
Outlook.AddressLists addrLists = Application.Session.AddressLists;
Outlook.AddressList gal = addrLists["Global Address List"];
//for a distrubution list do this...
Outlook.AddressEntry entry = gal.AddressEntries["distribution list"];
Outlook.ExchangeDistributionList exchDL = entry.GetExchangeDistributionList();
Outlook.AddressEntries addrEntries = exchDL.GetExchangeDistributionListMembers();
names = new string[addrEntries.Count];
for (int i = 0; i < addrEntries.Count; i++)
{
Outlook.AddressEntry exchDLMember = addrEntries[i];
names[i] = exchDLMember.Name;
}
return names;
//for an individual you could do something like this...
Outlook.AddressEntry entry = gal.AddressEntries["contact nickname"];
Outlook.ContactItem contact = entry.GetContact();
string name = contact.NickName;
string email = contact.Email1Address;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12675 次 |
| 最近记录: |