Получить адрес электронной почты членов списка рассылки Exchange - Python - PullRequest
1 голос
/ 15 апреля 2020

Я использовал win32.client и смог успешно получить доступ к членам списка рассылки Exchange, используя python. Однако, поскольку есть два пользователя с одинаковыми именем и фамилией, я хотел бы иметь возможность доступа к их адресу электронной почты вместо имени.

Используя ниже l oop, я могу go через членов списка рассылки Exchange и распечатайте имена всех участников:

import win32com.client

outlook_obj = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 

#This function gets outlook object and retuens all the members of ALL Groups
address_lists = outlook_obj.AddressLists

#Access Exchange Distribution Lists
dist_lists = address_lists['All Distribution Lists']
return(dist_lists)

dl_index = a_numerical_index_greater_than_zero # you can try different numbers until you find the index of your desired distributionList, or loop thorough all the members and find what you are looking for
for m in dist_lists.AddressEntries.Item(dl_index).GetExchangeDistributionList().Members:
    print(str(m))

Приведенный выше скрипт прекрасно работает и распечатывает все имена всех членов списка рассылки. Тем не менее, я ищу разные адреса электронной почты участников, поскольку я вижу, что имена не различаются (у меня могут быть два человека с одинаковыми именами: Джек Смит, но Джек. smith@xyz.com и Джек. smith2@xyz.com все еще различны).

Я использовал определение объекта из этого источника для создания кода выше, но, похоже, я не могу подключить участников к их адресу электронной почты.

Благодарю за любую помощь!

1 Ответ

1 голос
/ 15 апреля 2020

Хорошо - я получил свой ответ, и я делюсь информацией, если это может понадобиться другим.

Действительно, нижеприведенный скрипт возвращает addressEntry члена

dist_lists.AddressEntries.Item(dl_index).GetExchangeDistributionList().Members[0].GetExchangeUser()

и addressEntry может дать вам доступ ко всем деталям учетной записи, включая адрес электронной почты. Ниже приведен точный код для получения адреса электронной почты пользователя

dist_lists.AddressEntries.Item(dl_index).GetExchangeDistributionList().Members[0].GetExchangeUser().PrimarySmtpAddress
...