枚举全局地址列表条目
此代码示例枚举全局地址列表 (GAL) 中的前 100 个主要简单邮件传输协议 (SMTP) 地址。
示例
注意
下面的代码示例摘录自 Microsoft Office Outlook 2007 应用程序编程。
在下面的代码示例中,通过以下方式获取 AddressEntry 对象的 SMTP 地址:通过调用 GetExchangeUser() 或 GetExchangeDistributionList() 方法将该对象转换为 ExchangeUser 或 ExchangeDistributionList 对象。 如果 AddressEntry 对象表示 Exchange 用户,EnumerateGAL 返回公开 AddressEntry 对象属性的 ExchangeUser 对象。 使用 ExchangeUser 属性(如 JobTitle、Department、Alias、BusinessTelephoneNumber 或 PrimarySmtpAddress)公开它们。
如果使用 Visual Studio 测试此代码示例,必须先添加对 Microsoft Outlook 15.0 对象库组件的引用,并在导入 Microsoft.Office.Interop.Outlook 命名空间时指定 Outlook 变量。 不得将 using 语句直接添加到此代码示例中的函数前面,这个语句必须后跟公共类声明。 下面的代码行演示了如何在 C# 中执行导入和分配。
using Outlook = Microsoft.Office.Interop.Outlook;
private void EnumerateGAL()
{
Outlook.AddressList gal =
Application.Session.GetGlobalAddressList();
if (gal != null)
{
for (int i = 1;
i <= Math.Min(100, gal.AddressEntries.Count - 1); i++)
{
Outlook.AddressEntry addrEntry =
gal.AddressEntries[i];
if (addrEntry.AddressEntryUserType ==
Outlook.OlAddressEntryUserType.
olExchangeUserAddressEntry
|| addrEntry.AddressEntryUserType ==
Outlook.OlAddressEntryUserType.
olExchangeRemoteUserAddressEntry)
{
Outlook.ExchangeUser exchUser =
addrEntry.GetExchangeUser();
Debug.WriteLine(exchUser.Name + " "
+ exchUser.PrimarySmtpAddress);
}
if (addrEntry.AddressEntryUserType ==
Outlook.OlAddressEntryUserType.
olExchangeDistributionListAddressEntry)
{
Outlook.ExchangeDistributionList exchDL =
addrEntry.GetExchangeDistributionList();
Debug.WriteLine(exchDL.Name + " "
+ exchDL.PrimarySmtpAddress);
}
}
}
}