Python Flask: 发送邮件
来自CloudWiki
目录
背景
基于web的应用程序通常需要具有向用户/客户端发送邮件的功能。
Flask-Mail扩展使得与任何电子邮件服务器建立简单的接口变得非常容易。
安装扩展
首先,应该在pip实用程序的帮助下安装Flask-Mail扩展。
pip3 install Flask-Mail
邮箱设置
win10系统下网易邮箱怎样设置SMTP服务:http://www.xitongcheng.com/jiaocheng/win10_article_30498.html
邮箱设置->账户
步骤
导入类
在代码中从flask-mail模块导入Mail和Message类。
创建Flask实例。
from flask import Flask from flask_mail import Mail, Message app = Flask(__name__)
配置Flask-Mail
然后按照以下设置配置Flask-Mail。
app.config['MAIL_SERVER'] = 'smtp.qq.com' app.config['MAIL_PORT'] = 465 app.config['MAIL_USERNAME'] = 'maxin5452@qq.com' app.config['MAIL_PASSWORD'] = '**********' app.config['MAIL_USE_SSL'] = True
创建Mail类的实例
mail = Mail(app)
设置Message对象
在由URL规则(‘/’)映射的Python函数中设置Message对象。
1)不添加附件:
@app.route("/") def index(): msg = Message('Hello', sender='**@**.com', recipients=['**@**.com']) msg.body = "This is the email body" mail.send(msg) return "Sent"
2)添加附件:未验证:
def index(): msg = Message('Hello', sender='**@**.com', recipients=['**@**.com']) msg.body = "Hello Flask message sent from Flask-Mail" # 添加附件 with app.open_resource('upload/flask.png') as f: msg.attach('flask.png', 'image/png', f.read()) mail.send(msg) return "Sent"
主函数
if __name__ == '__main__': app.run(debug=True)
运行
python3 mail-flask.py
在另外一个窗口执行:
[root@ecs-6428 ~]# curl http://127.0.0.1:5000/
输出 Sent 说明成功 ~
全部代码
from flask import Flask from flask_mail import Mail, Message app = Flask(__name__) app.config['MAIL_SERVER'] = 'smtp.qq.com' app.config['MAIL_PORT'] = 465 app.config['MAIL_USERNAME'] = 'maxin5452@qq.com' app.config['MAIL_PASSWORD'] = '**********' app.config['MAIL_USE_SSL'] = True mail = Mail(app) @app.route("/") def index(): msg = Message('Hello', sender='maxin5452@qq.com', recipients=['458976849@qq.com']) msg.body = "This is the email body" mail.send(msg) return "Sent" if __name__ == '__main__': app.run(debug=True)
原文链接:https://blog.csdn.net/weixin_45444133/article/details/120084967