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