Получение контактной информации из Outlook GAL с использованием Python и win32com

Я пытаюсь написать скрипт на Python, который будет извлекать контактную информацию из глобального списка адресов Outlook. Для каждой записи мне удалось получить имя контакта, а также псевдоним (с некоторым дополнительным анализом).

Мой код размещен ниже:

import win32com.client

o = win32com.client.gencache.EnsureDispatch("Outlook.Application")
ns = o.GetNamespace("MAPI")

adrLi = ns.AddressLists.Item("Global Address List")
contacts = adrLi.AddressEntries
numEntries = adrLi.AddressEntries.Count

nameAliasDict = {}

for i in contacts:
    name = i.Name
    alias = i.Address.split("=")[-1]
    nameAliasDict[alias] = name

print "\nThe global address list contains",numEntries,"entries."

Есть ли способ получить полный набор информации, которая отображается при открытии GAL в Outlook (например, заголовок, адрес электронной почты)?

Благодарю.

2 ответа

Решение

Используйте AddressEntry.GetExchangeUser для получения объекта ExchangeUser. Если какое-либо свойство MAPI явно не отображается объектом ExchangeUser, вы можете получить его, используя AddressEnttry.PropertyAccessor.GetProperty. Посмотрите на записи адресов GAL с помощью OutlookSpy - щелкните IAddrBook | Open Root Comtainer или IMAPISession | QueryIdentity для просмотра объектов GAL и их свойств MAPI.

Используйте AddressEntry.GetExchangeUser для получения объекта ExchangeUser .Если какое-либо свойство MAPI явно не предоставляется ExchangeUserобъект, вы можете получить его, используя AddressEnttry.PropertyAccessor.GetProperty. Взгляните на записи адресов GAL с помощью OutlookSpy (я являюсь его автором) — щелкните IAddrBook | Открытый корневой контейнер или IMAPISession | QueryIdentity для просмотра объектов глобального списка адресов и их свойств MAPI.

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