Получить список рассылки, членом которого является пользователь Outlook. С помощью Python Pywin32

#python #outlook #pywin32

#python #outlook #pywin32

Вопрос:

Следующий код извлекает несколько сведений о пользователе Exchange в Outlook. Что мне нужно, так это извлечь группы электронной почты (может быть имя), членом которых является пользователь. Я не могу понять, как получить доступ к этому атрибуту.

 import win32com.client
import pandas as pd 
# Outlook stuff
outApp = win32com.client.gencache.EnsureDispatch("Outlook.Application")
outGAL = outApp.Session.GetGlobalAddressList()
entries = outGAL.AddressEntries
data_set = list()

# Iterates through your contact book and extracts/appends them to a list
for entry in entries:
    if entry.Type == "EX":
        user = entry.GetExchangeUser()
        if user is not None:
            if len(user.FirstName) > 0 or len(user.LastName) > 0:
                row = list()
                row.append(user.FirstName)
                row.append(user.LastName)
                row.append(user.PrimarySmtpAddress)
                row.append(user.Department)
                row.append(user.BusinessTelephoneNumber)
                row.append(user.MobileTelephoneNumber)
                row.append(user.CompanyName)
                row.append(user.Name)
                row.append(user.JobTitle)
                row.append(user.OfficeLocation)
                row.append(user.Alias)
                row.append(user.City)
                row.append(user.Comments)
                row.append(user.StateOrProvince)
                row.append(user.StreetAddress)
                data_set.append(row)

 

Ответ №1:

Использовать ExchangeUser.GetMemberOfList — см. https://docs.microsoft.com/en-us/office/vba/api/outlook.exchangeuser.getmemberoflist

Комментарии:

1. Он возвращает метод. <bound method _ExchangeUser.GetMemberOfList of <win32com.gen_py.Microsoft Outlook 16.0 Object Library._ExchangeUser instance at 0x2157568189512>> Как получить фактический текст.

2. Конечно — он возвращает AddressEntries объект. Вам нужно перебрать список и для каждого элемента списка ( AddressEntry объекта) прочитать его Name свойство.