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 шт):
Сейчас для работы сторонних приложений с 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()