#flask #flask-mail
Вопрос:
flask mail works perfectly on my local host but it is failing to work on heroku. Below is my setup code
app.config['MAIL_SERVER'] = 'smtp.gmail.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USERNAME'] = '@gmail.com'
app.config['MAIL_PASSWORD'] = '*****'
mail = Mail(app)
@app.route("/mymessage" ,methods= ['POST','GET'])
def mymessage():
em = request.form['email']
mm = request.form['message']
msg = Message('Hello', sender = '@gmail.com', recipients =
['@gmail.com'])
msg.body = mm " " 'email address of client :' em
mail.send(msg)
flash("Message sent successful")
return redirect(url_for('home'))
I get this error "2021-07-10T16:36:34.785576 00:00 app[web.1]: smtplib.SMTPAuthenticationError: (534, b'5.7.14 <https://accounts.google.com/signin/continue?sarp=1amp;scc=1amp;plt=AKgnsbsn5.7.14 YJZzLi6GK2jMF6AunHXhEoSyz2r6fSOYLB4ABgjP0jNdTWHh3ig-fhlvwc7oxm-quoLVan5.7.14 Z7CHpvU2lMufxnPm_0Dsc3p1uWgZhenvZQpb2TdWaZTZ-Sg_wojgwf4zlOlBe44O>n5.7.14 Please log in via your web browser and then try again.n5.7.14 Learn more atn5.7.14 https://support.google.com/mail/answer/78754 m6sm3480925qtx.9 - gsmtp')
2021-07-10T16:36:34.787223 00:00 heroku[маршрутизатор]: at=код ошибки=H13 desc=»Соединение закрыто без ответа» метод=Путь к сообщению=»/mymessage» host=buykev.herokuapp.com request_id=fe5ec81e-6d2f-4f8a-b148-a37a15c0bc28 fwd=»102.176.94.10″ dyno=web.1 подключение=4 мс служба=871 мс статус=503 байта=0 протокол=https»
Ответ №1:
Google блокирует вашу попытку входа в систему с heroku. Для решения этой проблемы вам необходимо включить менее безопасные приложения и использовать пароль приложения для своей учетной записи электронной почты.
Сначала мы должны включить двухэтапную проверку, после чего только мы сможем использовать пароль приложения. После включения 2-шаговой проверки перейдите в раздел Пароль приложения и выберите приложение в качестве почты и устройства (я выбрал компьютер с Windows) после получения пароля приложения замените им свой текущий пароль. и попробуйте отправить письмо еще раз. Это сработает.
app.config['MAIL_PASSWORD'] = 'your_app_password_here'
Комментарии:
1. после этого я получаю эту ошибку, пожалуйста «Ошибка smtplib.SMTPAuthenticationError Ошибка smtplib.SMTPAuthenticationError: (535, b’5.7.8 Имя пользователя и пароль не приняты. Узнайте больше по адресуn5.7.8 support.google.com/mail/?p=BadCredentials o3sm7967291wrm.5 — gsmtp’)»
2. Вам следует перепроверить сгенерированный пароль приложения и имя пользователя, которые вы используете, потому что это решение сработало для меня. И теперь я могу отправлять электронную почту на heroku. Вам также следует рассмотреть возможность перехода по указанной ссылке по ошибке и выполнить указанные действия. support.google.com/mail/?p=BadCredentials
3. Добро пожаловать , вы можете пометить это как принятый ответ и сообщить, что решило вашу ошибку «Имя пользователя и пароль не приняты».