VBA: Учитывая адрес электронной почты, как искать их в GAL? - PullRequest
2 голосов
/ 18 января 2011

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

Для начала я написал довольно простой VBA, который просматривает все электронные письма в папке «Входящие» и отображает адрес SenderEmail для тех, кто находится на сервере 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 ), что такоелучший способ найти этот контакт в глобальном списке адресов, чтобы я мог получить доступ к полям "телефон", "помощник", "заголовок" и "мобильный"?

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

1 Ответ

0 голосов
/ 25 февраля 2011

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

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

...