#python #smtp
#python #smtp
Вопрос:
import smtplib
from email.message import EmailMessage
email="....."
password="....."
print(email)
msg=EmailMessage()
msg['Subject']='AR'
msg['From']=email
msg['To']='......'
msg.set_content('Ok it works')
with smtplib.SMTP_SSL('smtp.gmail.com',465) as smtp:
smtp.login(email,password)
smtp.sendmail(email,"reciever_email",msg)
Возникает ошибка:
SMTPServerDisconnected: пожалуйста, сначала запустите connect()
Я не понимаю, где я ошибся.
Ответ №1:
Диспетчер with
контекста определяет smtp
продолжительность блока. Вы преждевременно выходите из блока, поэтому smtp
он больше не определен, и соединение с сервером прерывается.
Исправление тривиально; сделайте отступ от последней строки, чтобы она была внутри with
блока.
Комментарии:
1. Хорошо. спасибо. Это сработало. но в коде были и другие ошибки. Этот код помещает ядро в бесконечный цикл или что-то в этом роде. Должен ли я также поместить здесь правильный код?
2. Я не думаю, что это может привести к сбою вашего ядра. Вероятно, нет необходимости публиковать отдельный ответ, если это просто еще одна копия стандартного примера отправки электронной почты.
3. ОК. И ядро не вылетело, но продолжало работать около 20 минут с любым результатом или чем-либо еще, в последней строке кода есть несколько ошибок. В любом случае спасибо за вашу помощь. Это было хорошее и точное решение.