Найдите в адресной книге Outlook идентификатор пользователя в столбце «Псевдоним».Python

Программы на Python
Anonymous
Найдите в адресной книге Outlook идентификатор пользователя в столбце «Псевдоним».

Сообщение Anonymous »

Я пытаюсь получить результаты, возвращаемые адресной книгой Outlook для данного имени пользователя. По сути, когда я указываю имя пользователя, сценарий должен вернуть идентификатор электронной почты этого пользователя.
Приведенный ниже сценарий отлично работает, если после определения получателя есть только один результат. Но бывают случаи, когда Outlook может возвращать два или более результатов, и нам приходится вручную выбирать тот, который нам нужен.
Я совершенно не уверен, как получить все результаты, возвращаемые функциейsolve().

Код: Выделить всё

import win32com.client
import sys

def get_user_email(username: str) -> str | None:
outlook   = win32com.client.Dispatch("Outlook.Application")
namespace = outlook.GetNamespace("MAPI")

recipient = namespace.CreateRecipient(username)
recipient.Resolve()

if recipient.Resolved:
exchange_user = recipient.AddressEntry.GetExchangeUser()
if exchange_user:
return exchange_user.PrimarySmtpAddress
return None

if __name__ == "__main__":
username = sys.argv[1] if len(sys.argv) > 1 else input("Enter username: ")
email = get_user_email(username)
print(email if email else "None")
Просматривая адресную книгу Outlook, я вижу книгу под названием «Все пользователи». Я хочу выполнить расширенный поиск, используя поле «Псевдоним», как показано. Этот конкретный способ поиска возвращает только один результат, поскольку строка уникальна. Возможно ли это?
Изображение

введите здесь описание изображения

Вернуться в «Python»