我在发送带有烧瓶邮件(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"
当我去/ minfo时,我得到了
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
我不知道什么是破坏或如何解决它,谷歌谷歌搜索了几个小时。有人经历过这个吗?
答案 0 :(得分:8)
您必须设置flask config:
app = Flask(__name__)
app.config.from_object(__name__)
mail = Mail(app)
使用465
端口。
答案 1 :(得分:3)
MAIL_USE_TLS = True然后使用587端口 MAIL_USE_SSL = True然后使用465端口
答案 2 :(得分:-1)
我也有同样的问题,我也使用Flask-Mail,实际上它是Flask-User包的一部分。我启用了TLS端口,因为我的邮件服务器正在使用TLS。我禁用了SSL。我还将端口465更改为587。我的应用程序的代码如下:
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))
这一改变解决了我的问题。