您的位置:首页 > 大数据 > 人工智能

Flask学习记录之Flask-Mail

2015-04-27 12:05 357 查看
Flask-Mail可以连接到配置中的SMTP服务器,进行邮件发送,如果没有进行SMTP服务器的配置,将会默认连接到localhost上的

一.配置及初始化

(1)flask应用配置

#配置选项
MAIL_SERVER = 'smtp.qq.com' #邮件服务器
MAIL_PORT = 25 #端口
MAIL_USE_TLS = False#传输层安全协议
MAIL_USE_SSL = False #安全套接层协议
MAIL_USERNAME = 'you' #账号
MAIL_PASSWORD = 'your-password'#密码


(2)初始化

from flask.ext.mail import Mail
from flask import Flask

app = Flask(__name__)
mail = Mail(app)


二.发送邮件

from flask.ext.mail import Message
from app import mail

#创建一封邮件
msg = Message("邮件主题",
sender='skkg@qq.com',
recipients=['123@qq.com','321@qq.com']
)
msg.body = '文本内容'
msg.html = '<b>HTml内容</b>'

#发送邮件,flask-mail需要在current_app上下文中发送邮件
with app.app_context():
mail.send(msg)


辅助邮件发送函数

def send_email(to, subject, template, **kwargs):
app = current_app._get_current_object()
msg = Message(subject,
sender= 'skkg@qq.com',
recipients=[to])
msg.body = render_template(template + '.txt', **kwargs)
msg.html = render_template(template + '.html', **kwargs)
#在新线程中发送邮件
thr = Thread(target=send_async_mail, args=[app, msg])
thr.start()
return thr

#异步发送邮件,加快速度
def send_async_mail(app, msg):
with app.app_context():
mail.send(msg)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: