Использование MAPI для получения списка электронных писем из GAL

Это мой код до сих пор:

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]
    print i.GetExchangeUser().PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3A56101E")

Я получаю собственность от: https://msdn.microsoft.com/en-us/library/bb446002.aspx

Но по некоторым причинам я получаю эту ошибку:

pywintypes.com_error: (-2147352567, 'Exception occurred.', (4096, u'Microsoft Outlook', u'The property "http://schemas.microsoft.com/mapi/proptag/0x3A550003" is unknown or cannot be found.', None, 0, -2147221233), None)

Я делаю это неправильно?

1 ответ

Решение

Вы не можете предположить, что PR_CONTACT_EMAIL_ADDRESSES или любое другое свойство MAPI будет доступно. Можете ли вы на самом деле увидеть это свойство для этого конкретного объекта в OutlookSpy (нажмите IAddrBook, "Открыть корневой контейнер" и т. Д.)?

Зачем именно вам это имущество? Ты пытался ExchangeUser.PrimarySmtpAddress?

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