#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
свойство.