Проблема с отправкой электронной почты с паролем Google App в моей функции - PullRequest
0 голосов
/ 16 октября 2019

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

Я настроил двухэтапную проверку Google с помощью Gmail иЯ установил пароль приложения Google.

Пока я смотрел примеры в Интернете, но не знаю, почему не работает send_email():

def send_email():
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.ehlo() 
    server.login('<my_email_address>', '<google_app_password>')

    subject = 'You've Got Mail!'
    body = 'How are you buddy?'

    message = f'Subject: {subject}\n\n{body}'

    server.sendmail(
        '<my_email_address>',
        '<my_intended_recidpients_email_address>',
        message
    )
    print('Email has been successfully sent')

    server.quit()

Что может бытьвопрос?

1 Ответ

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

Вам не хватает 2 строк кода.

После server.ehlo() необходимо:

    server.starttls()
    server.ehlo()

server.starttls(), поскольку оно сообщает почтовому серверу, что почтовый клиент хочет превратить существующее незащищенное соединение в безопасное.

Второй server.ehlo() после server.starttls() необходим, поскольку после завершения квитирования TLS протокол SMTP сбрасывается в исходное состояние.

...