Как стать автором
Обновить

Как не напороться на грабли при использовании smtplib и почты gmail

Недавно, прочитав статью, я решил попробовать автоматизировать отправку сообщений при помощи языка программирования Python. А именно при помощи библиотеки smtplib.

Сразу хочу сказать, что эта статья будет небольшим дополнением той статьи.
Повторяя всё показанное в той статье, я напоролся на эту ошибку.

>>> import smtplib
>>> s = smtplib.SMTP('smtp.gmail.com', 587)
>>> s.starttls()
(220, b'2.0.0 Ready to start TLS')
>>> s.login('somemail@gmail.com', 'somepass')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\ROBOTD4\AppData\Local\Programs\Python\Python37\lib\smtplib.py", line 730, in login
    raise last_exception
  File "C:\Users\ROBOTD4\AppData\Local\Programs\Python\Python37\lib\smtplib.py", line 721, in login
    initial_response_ok=initial_response_ok)
  File "C:\Users\ROBOTD4\AppData\Local\Programs\Python\Python37\lib\smtplib.py", line 642, in auth
    raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8  https://support.google.com/mail/?p=BadCredentials b204sm8826287wmh.29 - gsmtp')

Я пару раз перечитывал статью и там ничего не написано про данную ошибку. Поэтому я решил сам разобраться в ошибке.

Как видно в ошибке есть ссылка: https://support.google.com/mail/?p=BadCredentials

Я перешел по ссылке, бегло прочитал описание и понял как её исправить.

Чтобы не затягивать статью, я расскажу вкратце. Но вы можете прочитать полное описание ошибки и способов её исправления, перейдя по ссылке.

Суть ошибки такая


Google не позволяет нам авторизоваться через smtplib, т.к. этот тип авторизации «менее безопасный». Чтобы быстро и оперативно исправить данную ситуацию надо просто перейти по ссылке и разрешить непроверенным приложениям доступ к почте.

И после данных действий у вас получиться нормально использовать библиотеку smtplib и автоматизировать отправку сообщений почты.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.