Как я могу отправить почту, используя скрипт Python?
Для этого я начал переходить по ссылке New to Python, ошибка GMail SMTP. И мой код
import smtplib
sender = "noreply@gmail.com"
receiver = ["ram@gmail.com"]
message = "Hello!"
try:
session = smptlib.SMTP('smtp.gmail.com',587)
session.ehlo()
session.starttls()
session.ehlo()
session.login(sender,'mypassword')
session.sendmail(sender,receiver,message)
session.quit()
except smtplib.SMTPException:
print('Error')
Но я получаю следующую ошибку:
Traceback (most recent call last):
File "email2.py", line 1, in <module>
import smtplib
File "/usr/lib/python2.7/smtplib.py", line 46, in <module>
import email.utils
File "/home/ramkrishna/test/email.py", line 17, in <module>
except SMTPException:
NameError: name 'SMTPException' is not defined
2 ответа
Похоже, вы должны использовать полное имя (smtplib.SMTPException)
попробуйте переключить "кроме SMTPException:" с:
msgstr "кроме smtplib.SMTPException:"
session = smptlib.SMTP('smtp.gmail.com',587)
должно быть session = smtplib.SMTP('smtp.gmail.com',587)
smptlib != smtplib
import smtplib
sender = "noreply@gmail.com"
receiver = ["ram@gmail.com"]
message = "Hello!"
try:
session = smtplib.SMTP('smtp.gmail.com',587)
session.ehlo()
session.starttls()
session.ehlo()
session.login(sender,'mypassword')
session.sendmail(sender,receiver,message)
session.quit()
except smtplib.SMTPException:
print('Error')
Код с исправленной орфографией работает нормально. Когда я меняюсь:
except smtplib.SMTPException:
print('Error')
в
except smtplib.SMTPException as e:
print(e)
Я получаю следующий вывод на python2 и python 3:
(535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8 http://support.google.com/mail/bin/answer.py?answer=14257 ev18sm10203485wid.1 - gsmtp')
File "/home/ramkrishna/test/email.py", line 17, in <module>
except SMTPException:
NameError: name 'SMTPException' is not defined
из этого следа - я полагаю, вы пытались написать скрипт python с именем файла как email.py
когда вы это сделаете, этот email.py переопределяет библиотеки python email.py (с тем же именем), поскольку текущий каталог имеет приоритет над библиотекой python.
в конечном итоге вы могли изменить свое имя сценария на email2.py, однако вы уже пытались запустить email.py один раз, поэтому у вас должен быть email.pyc в указанной папке
File "/home/ramkrishna/test/email.py"
Если вы пробовали использовать другое имя файла в другой папке, это могло сработать, или вы могли бы переименовать свой email.py в sendMyEmail.py и не забудьте удалить файл.pyc.
вопрос старый. думал, что этот ответ может помочь кому-то новому.