Получение контактной информации из 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.