Новое для Python, ошибка SMTP GMail

Я пишу простую функцию sendmail для себя, и я продолжаю получать эту ошибку:

NameError: имя «SMTPException» не определено

Что не так с моим кодом? Какие-либо предложения?

import smtplib sender = "user@gmail.com" receiver = ["user@gmail.com"] message = "Hello!" try: session = smptlib.SMTP('smtp.gmail.com',587) session.ehlo() session.starttls() session.ehlo() session.login(sender,'password') session.sendmail(sender,receiver,message) session.quit() except SMTPException: print('Error') 

2 Solutions collect form web for “Новое для Python, ошибка SMTP GMail”

В Python вам нужно будет полностью квалифицировать имя, предварительно добавив его своим модулем:

 except smtplib.SMTPException: 

Это верно, если вы специально не импортируете неквалифицированное имя (но я бы не рекомендовал делать это для вашей программы, просто показывая, что возможно):

 from smtplib import SMTPException 

Это неправильное письмо произошло много раз для меня! Один из способов обойти эту «проблему» – использовать yagmail .

Шутки в сторону, я недавно создал yagmail, чтобы упростить отправку писем.

Например:

 import yagmail yag = yagmail.SMTP('user@gmail.com', 'password') yag.send(contents = "Hello!") 

Здесь он использует несколько сокращений, например, когда « To не определено, он отправит почту тому же электронному адресу, который зарегистрирован на сервере. Также порт и хост являются стандартными, что делает его очень кратким.

Фактически, поскольку, похоже, вы хотите немедленно закрыть соединение, вы можете использовать этот однострочный интерфейс:

 yagmail.SMTP('user@gmail.com', 'password').send(contents = "Hello!") 

Для обеспечения безопасности вы можете сохранить свой пароль в keyring (см. Документацию), чтобы вам не приходилось хранить ваш личный пароль в ваших сценариях, очень важно! Это даже спасет вас более ценным имуществом.

При входе в олл-ин с пакетом ( @gmail.com по умолчанию) вы можете уйти со следующим:

 yagmail.SMTP('user').send('', 'Hello!') 

Удачи.

  • Письма не отправляются людям в СС
  • Отправка электронной почты не работает, когда я запускаю сценарий, но по строкам, он работает, почему?
  • Есть ли способ добавить несколько приемников в Python SMTPlib?
  • Отправка gmail с ошибкой python
  • Outlook 2010 и электронная почта Python smtplib - информация в соответствующих полях
  • Ошибка номера версии Hotmail SSL3 с использованием smtp
  • Python 3 smtplib отправляет с символами unicode
  • как добавить ссылку href в содержание электронной почты при отправке электронной почты через smtplib
  • Python - лучший язык программирования в мире.