我正在尝试从连接 Exchange 的 Outlook 中读取 Internet 格式的地址。我从 Outlook 联系人中读取了所有联系人,而不是从全局通讯簿 (GAB) 中读取,问题是对于存储在 Exchange GAB 中的联系人中的所有用户,我只能读取 X.500 格式在这种情况下没有用的地址。对于不在 Exchange 服务器域中的所有手动添加的联系人,将按预期导出 Internet 地址。
基本上,我使用以下代码片段来枚举联系人:
static void Main(string[] args)
{
var outlookApplication = new Application();
NameSpace mapiNamespace = outlookApplication.GetNamespace("MAPI");
MAPIFolder contacts = mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
for (int i = 1; i < contacts.Items.Count + 1; i++)
{
try
{
ContactItem contact = (ContactItem)contacts.Items[i];
Console.WriteLine(contact.FullName);
Console.WriteLine(contact.Email1Address);
Console.WriteLine(contact.Email2Address);
Console.WriteLine(contact.Email3Address);
Console.WriteLine();
}
catch (System.Exception e) { }
}
Console.Read();
}
有没有办法提取 Internet 地址而不是 X.500?