VBA:给定一个电子邮件地址,如何在GAL中查找它们?

时间:2011-01-18 17:16:51

标签: email vba outlook exchange-server gal

我正在编写一个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。

1 个答案:

答案 0 :(得分:0)

我无法快速了解您可以使用GAL做什么,但是,根据您在公司中的设置,您可以尝试查询Active Directory而不是那些字段。您可以为特定用户执行查询,避免必须有效地“下载”地址簿。

有很多关于如何通过VBA访问它的信息,还有一些例子可以帮助你开始http://www.rlmueller.net/ADOSearchTips.htm