Flask使用flask_mail模块发送邮件实例
- 2018-12-31 18:24:38
- 开发
- 947
- shevechco
之前写过一个python使用SMTP服务发送邮件的笔记:https://sulao.cn/post/595,flask中也有相关的模块,我们只需要简单的安装配置即可使用
首先pip安装模块
pip install flask_mail
接着直接上我的实例代码
#!/usr/bin/python3
#coding:utf-8
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_USE_SSL"] = True
app.config["MAIL_USERNAME"] = "shevechco@qq.com"
app.config["MAIL_PASSWORD"] = "QQ邮箱授权码"
mail = Mail(app)
@app.route('/sendmail')
def sendMail():
message = Message(subject='python sendmail test !', sender=app.config["MAIL_USERNAME"], recipients=['yang.su@***.com'])
message.body = '这是一个python使用sendmail的测试邮件'
try:
mail.send(message)
return "邮件发送成功!"
except:
return "邮件发送失败!"
if __name__ == "__main__":
app.run()
MAIL_DEFAULT_SENDER如果配置额sender也可以不用添加到Message方法内,会使用默认配置的发件人来发送,如果发送sender是一个二维元祖,那么他是可以附带一个昵称进去,例如merci
Message(subject='python sendmail test !', sender=('merci', app.config["MAIL_USERNAME"]), recipients=['yang.su@***.com'])
recipients为收件人,可以设置一个或者多个收件人,也可以后续再添加进去
msg.recipients = ["xxx@qq.com"]
msg.add_recipient("xxxx@qq.com")
邮件内容可以是文本和html格式,无需像之前的smtp服务器需要在头部声明,直接使用
#文本
message.body = '这是一个python使用sendmail的测试邮件'
#html
message.html = '<h1>这是一个python使用sendmail的测试邮件</h1>'
我们最后来看看如何添加附件
with app.open_resource('test.jpg') as fp:
message.attach('test.jpg', 'image/png', fp.read())
配置Flask-Mail的配置项说明
配置项 默认值 功能
MAIL_SERVER localhost 邮箱服务器
MAIL_PORT 25 端口
MAIL_USE_TLS False 是否使用TLS
MAIL_USE_SSL False 是否使用SSL
MAIL_DEBUG app.debug 是否为DEBUG模式,打印调试消息
MAIL_SUPPRESS_SEND app.testing 设置是否真的发送邮件,True不发送
MAIL_USERNAME None 用户名,填邮箱
MAIL_PASSWORD None 密码,填授权码
MAIL_DEFAULT_SENDER None 默认发送者,填邮箱
MAIL_MAX_EMAILS None 一次连接中的发送邮件的上限
MAIL_ASCII_ATTACHMENTS False 如果 MAIL_ASCII_ATTACHMENTS 设置成 True 的话,文件名将会转换成 ASCII 的。一般用于添加附件。
-
标签
- flask
- flask_mail
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://www.sulao.cn/post/617