VBA: Учитывая адрес электронной почты, как искать их в GAL?

Я пишу макрос VBA, который будет сканировать мой почтовый ящик, определять, кто мне много отправляет, а затем автоматически добавлять их (с несколькими выбранными полями) в качестве нового контакта в мою личную адресную книгу.

Для начала я написал довольно простой VBA, который просматривает все электронные письма в папке входящих сообщений и отображает адрес SenderEmailAddress для тех, кто находится на сервере Microsoft Exchange:

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, которая в компании, где есть (буквально) десятки тысяч записей, не кажется эффективной или практичной - и, вероятно, даст мне пощечину за руку. ИТ отдел.

Итак, учитывая, что адрес электронной почты (который будет выглядеть примерно так: / O = MYCOMPANY / OU = EUROPE / CN = RECIPIENTS / CN = RICHARD), каков наилучший способ поиска этого контакта в GAL, чтобы я мог получить удерживать поля "телефон", "помощник", "заголовок" и "мобильный"?

Я использую Outlook 2003.

1 ответ

Я не совсем разбираюсь в том, что вы можете делать с GAL, однако, в зависимости от того, как он настроен в вашей компании, вы можете попробовать вместо этого запросить Active Directory для этих полей. Вы можете выполнять запросы для конкретных пользователей, что позволит избежать необходимости "загружать" адресную книгу.

Существует много информации о том, как получить к ней доступ через VBA, а также несколько примеров, с которых можно начать, по адресу http://www.rlmueller.net/ADOSearchTips.htm

Другие вопросы по тегам