本文实例讲述了Flask-Mail用法。分享给大家供大家参考,具体如下:
很多类型的应用程序都需要在特定事件发生时提醒用户,而常用的通信方法是电子邮件。
虽然 Python 标准库中的 smtplib
包可用在 Flask 程序中发送电子邮件,但包装了 smtplib
的
Flask-Mail
扩展能更好地和 Flask 集成
安装
Flask-Mail SMTP服务器的配置
配置 |
默认值 |
说明 |
MAIL_SERVER |
localhost |
电子邮件服务器的主机名或IP地址 |
MAIL_PORT |
25 |
电子邮件服务器的端口 |
MAIL_USE_TLS |
False |
启用传输层安全协议 |
MAIL_USE_SSL |
False |
启用安全套接层协议 |
MAIL_USERNAME |
None |
邮件账户的用户名 |
MAIL_PASSWORD |
None |
邮件账户的密码 |
代码示例
from threading import Thread
from flask import Flask
from flask_mail import Mail,Message
app = Flask(__name__)
app.config["MAIL_SERVER"] = "smtp.163.com"
app.config["MAIL_PORT"] = 465
app.config["MAIL_USE_SSL"] = True
app.config["MAIL_USERNAME"] = "xxxxx@163.com"
app.config["MAIL_PASSWORD"] = "123456"
mail = Mail(app)
@app.route("/send_mail")
def send_mail():
"""
发送邮件
"""
message = Message("标题",sender=app.config["USERNAME"],recipients=["xxxxxx@qq.com"])
message.body = "内容"
t = Thread(target=send_email,args=(message,))
t.start()
return "发送成功"
def send_email(msg):
with app.app_context():
mail.send(msg)
if __name__ == "__main__":
app.run()
Message:邮件消息,sender:发送者邮箱;recipients:接收者邮箱,列表格式;body:内容
网易163免费邮箱相关服务器信息
使用网易邮箱作为发送者邮箱时应注意,邮箱密码并非为邮箱的登录密码,而是客户端授权密码。
希望本文所述对大家基于flask框架的Python程序设计有所帮助。