我目前正在为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);
}
}
答案 0 :(得分:0)
GetContact仅适用于您的某个“联系人”文件夹中的IPM.Note项目(由ContactItem对象表示)。
如果是EX条目,请使用AddressEntry.GetExchangeUser并使用ExchangeUser对象。
要阅读PR_EMS_AB_PROXY_ADDRESSES,请使用AddressEntry.PropertyAccessor.GetProperty并传递相应的DASL名称"http://schemas.microsoft.com/mapi/proptag/0x800F101F".