Как обрабатывать всплывающие окна приложений Microsoft Outlook с помощью селена при автоматизации в python - PullRequest
1 голос
/ 09 января 2020

Я занят автоматизацией процесса с использованием пакета селеном в python. Мой процесс требует, чтобы я отправлял электронные письма, используя приложение Outlook, но когда я пытаюсь отправить электронную почту с python, используя код ниже:

outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'email_address'

mail.Subject = 'Email Subject'
mail.Body = 'Email Body'
attachment = 'Attachment'
mail.Attachments.Add(attachment)

, я получаю это всплывающее окно из Outlook: enter image description here

Selenium работает только для веб-автоматизации, как я могу решить эту проблему с помощью python, чтобы при отправке электронного письма автоматически нажималось «Разрешить» без необходимости делать это вручную.

Я посмотрел на свою программу Outlook 2016 Programmati c Параметры доступа и статус антивируса недействителен: enter image description here

1 Ответ

1 голос
/ 09 января 2020

Вы получаете стандартную подсказку безопасности, выданную Outlook, когда вы получаете доступ к любому защищенному свойству или просто отправляете элемент. Подробнее об этом вы можете прочитать в статье «Программа пытается отправить электронное сообщение от вашего имени» в статье Outlook .

Существует несколько способов избежать таких запросов при отправке электронных писем:

  1. Используйте Outlook Security Manager, который позволяет отключать и включать запросы безопасности во время выполнения. См. Security Manager для примера кода.
  2. Используйте низкоуровневый API, который не вызывает запросы безопасности - Extended MAPI или любые другие оболочки вокруг этого API, такие как Redemption .
  3. Разработка надстройки COM, которая имеет доступ к доверенному Приложению объекту.
  4. Использование объектов групповой политики для настройки компьютеров, чтобы не вызывать запросы безопасности.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...