GAL从前景与交换中获得一个?

时间:2014-07-24 06:40:14

标签: c# email outlook

我目前正在为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 个答案:

答案 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".