Невозможно отправить почту через Outlook, используя Python - PullRequest
1 голос
/ 15 января 2020

Я использую приведенный ниже код для отправки электронной почты с вложением, используя python. Я использовал приложение outlook itselt (не через backend)

from time import sleep

import win32com.client as win32

outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = "EMAIL ADDRESS"
mail.Subject = "Subject"
mail.HtmlBody = "HTML Body"
mail.Attachments.Add("folderName\\output.zip")
mail.Display(True)
sleep(1)
mail.Send()

Работает нормально до строки mail.Display (True). Я вижу открытое окно почтовой программы Outlook со всем набранным, а также прикрепленным файлом. Но следующий оператор mail.send () выдает ошибку:

Traceback (most recent call last):   File "C:/Users/username/PycharmProjects/001.PySelenium/win32email.py", line 16, in <module>
    mail.send()   File "C:\Users\username\PycharmProjects\001.PySelenium\venv\lib\site-packages\win32com\client\dynamic.py", line 516, in __getattr__
    ret = self._oleobj_.Invoke(retEntry.dispid,0,invoke_type,1) pywintypes.com_error: (-2147467260, 'Operation aborted', None, None)

Снимок экрана отладки:

enter image description here

1 Ответ

0 голосов
/ 15 января 2020

Пожалуйста, используйте mail.Send()

Кстати, если вы хотите отправлять почту через Outlook, используя Python автоматически.

Пожалуйста, прокомментируйте mail.Display(True) и sleep(1), или вы не можете отправлять почту, пока вы не сохраните изменения в почте вручную.

Пожалуйста, попробуйте:

import win32com.client

outlook = win32com.client.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = "my@mail.com"
mail.Subject = "Test"
mail.Body = "Mail"
mail.Attachments.Add("folderName\\output.zip")

mail.Send()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...