Я хочу отправить электронную почту Outlook через python, и я нашел скрипт ниже

import win32com.client
from win32com.client import Dispatch, constants
const=win32com.client.constants
olMailItem = 0x0
obj = win32com.client.Dispatch("Outlook.Application")
newMail = obj.CreateItem(olMailItem)
newMail.Subject = "I AM SUBJECT!!"
newMail.BodyFormat = 2 
newMail.HTMLBody = "<HTML><BODY>Enter the <span style='color:red'>message</span> text here.</BODY></HTML>"
newMail.To = "my_email@email.com"
newMail.display()
newMail.Send()

Все работает нормально, пока newMail.Send() не выдает эту ошибку

Traceback (most recent call last):
  File "<ipython-input-46-7e8e370e48a8>", line 1, in <module>
    newMail.Send()
File "<COMObject CreateItem>", line 2, in Send
com_error: (-2147467260, 'Operation aborted', None, None)
1
user3251889 30 Мар 2020 в 17:09
Попробуйте решения, упомянутые в stackoverflow.com/questions/59365331/… или stackoverflow.com/questions/26807942/…. Ни один из них не имеет принятого ответа, но, по крайней мере, он даст вам что-то попробовать (что очень хорошо сделать, прежде чем спрашивать на SO).
 – 
manny
30 Мар 2020 в 17:14
Привет, Мэнни, спасибо за предложения, но я все же не смог найти решение, которое работает для этой проблемы.
 – 
user3251889
30 Мар 2020 в 17:36
Добавьте time.sleep(2) перед отправкой
 – 
0m3r
4 Апр 2020 в 08:19

1 ответ

Вам нужно либо отобразить сообщение, либо отправить его, но не то и другое — ваш код отображает сообщение, а затем сразу отправляет его.

1
Dmitry Streblechenko 30 Мар 2020 в 18:05