枚举全局地址列表条目

此代码示例枚举全局地址列表 (GAL) 中的前 100 个主要简单邮件传输协议 (SMTP) 地址。

示例

注意

下面的代码示例摘录自 Microsoft Office Outlook 2007 应用程序编程

在下面的代码示例中,通过以下方式获取 AddressEntry 对象的 SMTP 地址:通过调用 GetExchangeUser()GetExchangeDistributionList() 方法将该对象转换为 ExchangeUserExchangeDistributionList 对象。 如果 AddressEntry 对象表示 Exchange 用户,EnumerateGAL 返回公开 AddressEntry 对象属性的 ExchangeUser 对象。 使用 ExchangeUser 属性(如 JobTitleDepartmentAliasBusinessTelephoneNumberPrimarySmtpAddress)公开它们。

如果使用 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);
            }
        }
    }
}

另请参阅

通讯簿