Flask-Mail

在开发过程中,很多应用程序都需要通过邮件提醒用户,Flask的扩展包Flask-Mail通过包装了Python内置的smtplib包,可以用在Flask程序中发送邮件。

Flask-Mail连接到简单邮件协议(Simple Mail Transfer Protocol,SMTP)服务器,并把邮件交给服务器发送。

发送邮件需要使用SMTP服务器,常用的免费服务器有:​​163​​​、​​126​​​、​​QQ​​,下面以163邮件为例。

首先需要安装flask_mail模块。

pip3 install flask_mail

1)注册163邮箱,登录后设置。


Flask 邮件扩展 flask_mail_flask


设置开启邮件服务,如下:


Flask 邮件扩展 flask_mail_flask_02


2)在新页面中点击“客户端授权密码”,勾选“开启”,弹出新窗口填写手机验证码。


Flask 邮件扩展 flask_mail_发送邮件_03


3)填写授权码。


Flask 邮件扩展 flask_mail_服务器_04


4)提示开启成功。


Flask 邮件扩展 flask_mail_服务器_05


5)编写发送邮件代码。

from flask import Flask
from flask_mail import Mail, Message

app = Flask(__name__)

mail_config = {
"MAIL_SERVER": "smtp.163.com",
"MAIL_PORT": 465,
"MAIL_USE_SSL": True,
"MAIL_USERNAME": "****@163.com", # 发送邮箱
"MAIL_PASSWORD": "****" # 客户端授权码
}

app.config.update(mail_config)

mail = Mail(app)


@app.route("/send_mail")
def send_mail():
"""
发送邮件
"""
message = Message("标题", sender=app.config["MAIL_USERNAME"], recipients=["****@qq.com"])
message.body = "内容"
mail.send(message)

return "发送成功"


if __name__ == "__main__":
app.run()

6)访问视图函数send_mail发送邮件。


Flask 邮件扩展 flask_mail_服务器_06


7) 确认收到的邮件。


Flask 邮件扩展 flask_mail_服务器_07

Flask 邮件扩展 flask_mail_flask_08