Отправка электронной почты из Python через корпоративный аккаунт Office 365 - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь отправить электронное письмо через Python из своей корпоративной учетной записи Office 365 в другую корпоративную учетную запись Office 365. Цель состоит в том, чтобы отправить электронное письмо после успешного выполнения сценария.

Я проверил идентификатор и пароль электронной почты, однако не могу понять, в чем проблема.

    import smtplib
    message = "Execution Successful"
    mailserver = smtplib.SMTP('smtp.office365.com',587)
    mailserver.ehlo()
    mailserver.starttls()
    mailserver.login('userid@corporateemail.com', 'password')
    mailserver.sendmail('userid@corporateemail.com', 'userid@corporateemail.com', message)
    mailserver.quit()

Это должно вызвать электронное письмо пользователю. Однако выдает сообщение об ошибке. Вот вывод:

    Traceback (most recent call last):

  File "<ipython-input-45-663ff7ed4e61>", line 1, in <module>
    runfile('C:/Users/qy115/Desktop/Updated Python/Test/EmailTest.py', wdir='C:/Users/qy115/Desktop/Updated Python/Test')

  File "C:\Software\Eng_APPS\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
    execfile(filename, namespace)

  File "C:\Software\Eng_APPS\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/qy115/Desktop/Updated Python/Test/EmailTest.py", line 20, in <module>
    mailserver.starttls()

  File "C:\Software\Eng_APPS\Anaconda3\lib\smtplib.py", line 752, in starttls
    (resp, reply) = self.docmd("STARTTLS")

  File "C:\Software\Eng_APPS\Anaconda3\lib\smtplib.py", line 420, in docmd
    return self.getreply()

  File "C:\Software\Eng_APPS\Anaconda3\lib\smtplib.py", line 390, in getreply
    + str(e))

  SMTPServerDisconnected: Connection unexpectedly closed: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

1 Ответ

1 голос
/ 11 октября 2019

Я пытаюсь сделать то же самое. Я не думаю, что вы можете использовать имя пользователя и пароль для аутентификации в Office 365. Вы должны следовать этим инструкциям, которые, как я понимаю, требуют подключения к Office 365 через безопасное приложение в службе Microsoft Azure:

https://pypi.org/project/O365/#different-authentication-interfaces

Мне удалось пройти проверку подлинности, однако я не смог получить необходимый токен, чтобы войти в мою учетную запись и отправить электронное письмо. Может быть, у вас будет больший успех? Если кто-то сделал это успешно, пожалуйста, сообщите нам, поскольку я не могу решить это.

...