【问题标题】:VBA: Given an email address, how to look them up in the GAL?VBA:给定一个电子邮件地址,如何在 GAL 中查找它们?
【发布时间】:2011-06-11 05:57:18
【问题描述】:

我正在编写一个 VBA 宏,它将扫描我的收件箱,确定经常给我发电子邮件的人,然后自动将他们(带有许多选择字段)作为新联系人添加到我的个人通讯簿中。

首先,我编写了一些非常简单的 VBA,它会查看收件箱中的所有电子邮件,并为 Microsoft Exchange 服务器上的人显示 SenderEmailAddress:

Dim objEmail As Outlook.MailItem

Set objNS = GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)

For Each objEmail In objInbox.Items
    If objEmail.SenderEmailType = "EX" Then
        Debug.Print objEmail.SenderEmailAddress
    End If
Next

我现在有了电子邮件地址,所以下一步是在 GAL 上查找它们。然而,我看到的解决方案涉及扫描整个 GAL,在一家有(字面上)数以万计条目的公司中,这似乎并不高效或实用 - 并且可能会让我受到打击IT 部门。

因此,鉴于电子邮件地址(类似于 /O=MYCOMPANY/OU=EUROPE/CN=RECIPIENTS/CN=RICHARD),查找的最佳方式是什么GAL 上的此联系人,以便我可以获取“电话”、“助理”、“职务”和“手机”字段?

我正在使用 Outlook 2003。

【问题讨论】:

    标签: email vba outlook exchange-server gal


    【解决方案1】:

    我不太了解您可以使用 GAL 做什么,但是,根据您公司的设置方式,您可以尝试查询 Active Directory 来代替这些字段。您可以针对特定用户执行查询,从而避免有效地“下载”通讯录。

    有很多关于如何通过 VBA 访问它的信息,以及一些帮助您入门的示例http://www.rlmueller.net/ADOSearchTips.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多