我正在编写一个outlook的界面,因此我正在尝试访问GAL . 我猜这个问题非常基本 . 我可以在GAL中获取地址列表,但它们中没有联系人项目 . 当我打印地址条目的类型时,我总是得到“EX”,我猜这代表交换 . 现在我的问题是:如果我想获取电子邮件而不是仅显示地址条目名称,我是否必须直接连接到交换服务器?或者我可以使用互操作Outlook方法吗?
下面是我用来从outlook获取gal的代码:
Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();
AddressList gal = oApp.Session.GetGlobalAddressList();
foreach (AddressEntry entry in gal.AddressEntries)
{
String addString = entry.Name + ": ";
if (entry.GetContact() != null)
{
addString += entry.GetContact().FirstName + " " + entry.GetContact().LastName + ": " + entry.GetContact().Email1Address;
dataGlobal.Add("CONTACT: " + addString);
}
else
{
addString += entry.Type;
dataGlobal.Add(addString);
}
}
1 回答
GetContact仅适用于您的一个“联系人”文件夹中的IPM.Note项(由ContactItem对象表示) .
如果是EX条目,请使用AddressEntry.GetExchangeUser并使用ExchangeUser对象 .
要读取PR_EMS_AB_PROXY_ADDRESSES,请使用AddressEntry.PropertyAccessor.GetProperty并传递相应的DASL名称
"http://schemas.microsoft.com/mapi/proptag/0x800F101F".