Найдите в адресной книге 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, я вижу книгу под названием «Все пользователи». Я хочу выполнить расширенный поиск, используя поле «Псевдоним», как показано. Этот конкретный способ поиска возвращает только один результат, поскольку строка уникальна. Возможно ли это?
введите здесь описание изображения
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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