Sending mail using Flask-Mail

I'm having trouble sending flask email ( http://pythonhosted.org/flask-mail/ )

from flask.ext.sqlalchemy import SQLAlchemy from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash from flask.ext.mail import Mail, Message import os # configuration DEBUG = True SECRET_KEY = 'hidden' USERNAME = 'secret' PASSWORD = 'secret' MAIL_SERVER='smtp.gmail.com' MAIL_PORT=587 MAIL_USE_TLS = False MAIL_USE_SSL= True MAIL_USERNAME = ' user@gmail.com ' MAIL_PASSWORD = 'password' app = Flask(__name__) mail = Mail(app) @app.route('/minfo') def send_mail(): msg = Message( 'Hello', sender=' user@gmail.com ', recipients= [' user@gmail.com.com ']) msg.body = "This is the email body" mail.send(msg) return "Sent" 

When I go to / minfo, I get

 12:25:57 web.1 | return socket.create_connection((port, host), timeout) 12:25:57 web.1 | File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 571, in create_connection 12:25:57 web.1 | raise err 12:25:57 web.1 | error: [Errno 61] Connection refused 

I have no idea what violates or how to fix it, it has been working on the Internet for hours. Has anyone experienced this?

+6
source share
3 answers
  • You must configure the jar configuration:

     app = Flask(__name__) app.config.from_object(__name__) mail = Mail(app) 
  • Use port 465 .

+8
source

MAIL_USE_TLS = True, then use port 587 MAIL_USE_SSL = True, then use port 465

+1
source

I have the same problem too, and I also used Flask-Mail, in fact it was part of the Flask-User package. I enabled the TLS port because my mail server used TLS. I have disabled SSL. I also change the port from 465 to 587 from my application code:

  MAIL_PORT = int(os.getenv('MAIL_PORT', '587')) MAIL_USE_SSL = int(os.getenv('MAIL_USE_SSL', False)) MAIL_USE_TLS = int(os.getenv('MAIL_USE_TLS', True)) 

This change solved my problem.

-1
source

Source: https://habr.com/ru/post/948475/


All Articles