smtplib.SMTPAuthenticationError: (534, b'5.7.9 Please log in with your web browser and then try again.?

Мой бот на aiogram может отправлять сообщения на почту через gmail. Сначала все хорошо работало, но около часа назад загрузил бота на хостинг, и все перестало работать. Код падает с ошибкой:

raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (534, b'5.7.9 Please log in with your web browser and then try again. 

UPD: короче зашел на свой аккаунт gmail, пишет, что надо войти заново т.к. обнаружена "подозрительная активность" (из-за того, что через этот акк уже отправлял emailы). Попробовал еще раз, работает. Но теперь вопрос в другом: раз gmail "блокирует" мой акк, то как в production мне использовать бота? Через еще пару попыток он снова заблокируется и перестанет работать... Как решить эту проблему?


Ответы (1 шт):

Автор решения: mrgervant

Сейчас для работы сторонних приложений с gmail по SMTP требуется использовать отдельный пароль для приложений: App Passwords

Сначала в настройках аккаунта нужно включить двухфакторную авторизацию. После этого можно будет здесь (Google-аккаунт - Безопасность - Вход в Google - Пароли приложений) сгенерировать пароль для бота.

Код с использованием нового пароля:

import smtplib

YOUR_GOOGLE_EMAIL = '<[email protected]>'
YOUR_GOOGLE_EMAIL_APP_PASSWORD = '<your-app-password>'

smtpserver = smtplib.SMTP_SSL('smtp.gmail.com', 465)
smtpserver.ehlo()
smtpserver.login(YOUR_GOOGLE_EMAIL, YOUR_GOOGLE_EMAIL_APP_PASSWORD)

sent_from = YOUR_GOOGLE_EMAIL
sent_to = sent_from
email_text = 'This is a test'
smtpserver.sendmail(sent_from, sent_to, email_text)

smtpserver.close()
→ Ссылка