使用Flask-Mail扩展发送邮件
来源:互联网 发布:淘宝部分店铺无法使用 编辑:程序博客网 时间:2024/05/01 00:53
1、安装 Flask-Mail
pip install Flask-Mail
2、发送邮件
# -*- coding: utf-8 -*-#****************************************************************# sendmail.py# Author : sisiair# Version : 0.1.0# Date : 2017-2-22# Description: 使用Flask-mail扩展发送邮件功能#****************************************************************from flask import Flaskfrom flask_mail import Mail, Messageimport osimport randomfrom threading import Threadapp = Flask(__name__)app.config['MAIL_SERVER'] = 'smtp.qq.com' # 邮件服务器地址app.config['MAIL_PORT'] = 25 # 邮件服务器端口app.config['MAIL_USE_TLS'] = True # 启用 TLSapp.config['MAIL_USERNAME'] = os.environ.get('MAIL_USERNAME') or 'sender@example.com'app.config['MAIL_PASSWORD'] = os.environ.get('MAIL_PASSWORD') or '123456'mail = Mail(app)@app.route('/')def index(): msg = Message('邮件标题', sender='sender@example.com', recipients=['receiver@example.com']) msg.body = '这是一封测试邮件!' name = "result.html" with app.open_resource(name) as fp: msg.attach(name, "html/html", fp.read()) #发送html附件 #msg.html = fp.read() #邮件直接展示html结果 mail.send(msg) return ('<h1>send successfully %d!</h1>' % random.randint(0,99))def send_async_email(app, msg): with app.app_context(): mail.send(msg)@app.route('/sync')def send_email(): msg = Message('邮件标题', sender='sender@example.com', recipients=['receiver@example.com']) msg.body = '这是一封测试邮件,异步发送!' name = "result.html" with app.open_resource(name) as fp: msg.attach(name, "html/html", fp.read()) #发送附件 #msg.html = fp.read() #邮件直接展示html结果 #mail.send(msg) #异步发送 thr = Thread(target=send_async_email, args=[app, msg]) thr.start() return ('<h1>send successfully %d!</h1>' % random.randint(0,99))if __name__ == '__main__': app.run(host='127.0.0.1', debug=True)
在发送前,需要先设置用户名和密码,当然你也可以直接写在文件里,如果是从环境变量读取,可以这么做:
$ export MAIL_USERNAME='sender@example.com'$ export MAIL_PASSWORD='123456'
将上面的 sender
和 recipients 改一下,就可以进行测试了。
从上面的代码,我们可以知道,使用 Flask-Mail 发送邮件主要有以下几个步骤:
配置 app 对象的邮件服务器地址,端口,用户名和密码等
创建一个 Mail 的实例:
mail = Mail(app)
创建一个 Message 消息实例,有三个参数:邮件标题、发送者和接收者
创建邮件内容,如果是 HTML 格式,则使用
msg.html
,如果是纯文本格式,则使用msg.body
最后调用
mail.send(msg)
发送消息
0 0
- 使用 flask-mail 扩展发送邮件
- 使用Flask-Mail扩展发送邮件
- 使用Flask-Mail发送邮件
- 使用Python Flask-mail发送邮件
- 使用Flask-Mail发送QQ邮件
- [python3.6 flask web学习]使用Flask-Mail发送邮件
- flask:使用flask-mail客户端访问触发发送邮件
- Flask-Mail邮件发送问题
- 使用flask mail发送mail
- 使用Flask-Mail和qq邮箱SMTP服务发送邮件
- 用Flask-mail发送邮件失败解决方案
- 使用Spring Mail发送邮件
- 使用.net mail发送邮件
- 使用java mail 发送邮件
- 使用Java Mail发送邮件
- java 使用 mail 发送邮件
- 使用Java Mail发送邮件
- 使用Java Mail发送邮件
- Java中的字符流缓冲区介绍
- Android studio导入架包
- mysql-5.7.17-winx64.zip解压缩版安装配置完整过程
- python中的group,match
- 手把手教你玩转上传图片
- 使用Flask-Mail扩展发送邮件
- 注意pointcut的入参的表达式名称
- tomcat设置get方法中url的长度限制
- android 图片压缩算法
- R-FCN+ResNet-50 训练模型
- 如何正确自定义handler
- python下运行import sklearn.model_selection 出错ImportError: No module named model_selection解决方法
- java基础学习API之StringBuffer类 六-2
- PLSQL DDL Trigger save DDL history