Работает ли почта Flask на heroku

#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. Добро пожаловать , вы можете пометить это как принятый ответ и сообщить, что решило вашу ошибку «Имя пользователя и пароль не приняты».