使用flask -mail发送邮件

mac2024-07-17  54

flask封装的flask-mail非常易于发送邮件,简单易用。

一、安装flask-mail

pipenv install flask-mail

配置flask-mail

# Email 配置 MAIL_SERVER = "smtp.qq.com" # 电子邮件的服务器,我用的是qq的电子邮件服务器 MAIL_PORT = 465 # 端口 MAIL_USE_SSL = True # qq使用的是SSL协议 MAIL_USE_TSL = False MAIL_USERNAME = "xxxxx@qq.com" # 自己的qq邮箱 MAIL_PASSWORD = "******************" #这里的密码最后介绍

从flask_mail中导入 Mail类

邮件是同过Mail实例进行管理的:

from flask_mail import Mail

实例化Mail类

把mail实例注册到flask中去,当然你也可以使用 mail.init_app( ) 去注册 , 2中方式,第二种方式用的多!

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

 

二、发送邮件

发送邮件需要创建一个Message实例,Message类也是需要从flask_mail中导入的;

在视图函数中,初始化Message类,参数:

参数一 : 发送邮件的名称。

参数二 : sender = "xxx" 这个关键字参数需要填写发送者的邮箱,实际开发中,一般填写企业邮箱!

参数三 : body="template" 这个关键字参数是邮件的正文内容,通常会是一个html模板。

参数四 : recipients = [ " to_1@qq.com " , " to_2@qq.com " ] , 发送给谁,(接收人)列表里传入多个邮箱。

from flask_mail import Message @app.route('/send') def send(): msg = Message("Email-title",sender="from@qq.com",body="template",recipients=["to@qq.com"]) mail.send(msg) # 最后,使用实例中send方法发送邮件 return 'SEND SUCCESS!'

当然上边的sender关键字参数去掉,在配置文件中使用默认发送人:

MAIL_DEFAULT_SENDER = "from@qq.com"

最后我说下,在配置文件中密码的获取:

打开qq邮箱,在设置里边,点击账户,

下拉找到下边这里,点击生成授权码,(如果没有温馨提示,在POP3/SMTP服务 (如何使用 Foxmail 等软件收发邮件?)右边点击开启),会让你用手机发送一条短息,成功后会给你一个一个授权码,把这个授权码填写到配置文件 中的去即可:

 信息发送成功,获得的授权码!

最新回复(0)