
4.Flask mail
在
web
程序中,经常会使用到电子邮件,比如,用户的注册时发送的确认邮件,定期像用户发送广告,等等.Flask-Mail
包装了python
标准库smtplib
,简化了Flask
发送电子邮件的过程.官网:
http://www.pythondoc.com/flask-mail/
1.安装
$ pip install flask-mail
2.配置
参数 描述 MAIL_SERVER
默认 localhost
,服务器名称/ip
MAIL_PORT
默认25,服务器端口号 MAIL_USE_TLS
默认 False
,传输安全层加密MAIL_USE_SSL
默认为 False
,SSL
加密MAIL_DEBUG
调试支持,默认是Flask应用程序的调试状态 MAIL_USERNAME
发件人用户名 MAIL_PASSWORD
发件人密码 MAIL_DEFAULT_SENDER
默认发件人 MAIL_MAX_EMAILS
设置要一次发送的最大邮件个数 MAIL_SUPPRESS_SEND
默认是 app.testing
MAIL_ASCII_ATTACHMENTS
True
,则附件名称被转换为ASCII
3.主要函数
1.Mail
它管理电子邮件消息的要求.类似如下
方法 描述 send()
发送 Message
类对象的内容connect()
与邮件主机打开连接 send_message()
发送消息对象
2.Message
封装电子邮件,主要如下:
方法 描述 attach()
向消息添加附件,有如下参数: filename
(名称),connect_typre
(文件MIME类型),data
(原始文件数据),disposition
(内容处置)add_recipient()
向消息添加另一个收件人
4.发送邮件
from flask import Flask
from flask_mail import Mail,Message
app = Flask(__name__)
# 2.配置 flask_mail
app.config.update({
'DEBUG':True,
'TEMPLATES_AUTO_RELOAD':True,
'MAIL_SERVER' : 'smtp.qq.com',
'MAIL_PORT': 465,
'MAIL_USERNAME' : '25@qq.com',
'MAIL_PASSWORD' : "im", # qq使用的验证码
'MAIL_USE_SSL':True,
'MAIL_USE_TLS':False
})
# 1.初始化
mail = Mail(app)
@app.route('/')
def index():
# 3.构造Message类
# recipients 可以设置多个收件人,也可以通过 msg.add_recipient['xxx@xx.com']添加收件人
msg = Message('Test', sender='25@qq.com', recipients=['18@163.com'])
# 邮件可以包含主题,或者HTML
msg.body = "testing"
msg.html = "<b>testing</b>"
# 发送邮件
mail.send(msg)
return '发送邮件成功'
if __name__ == '__main__':
app.run()运行程序后,可以在收件人邮箱中验证
10321
1.发送大量邮件
有些时候需要一次性发送大量邮件,如下
with mail.connect() as conn:
for user in users:
message = '...'
subject = "hello, %s" % user.name
msg = Message(recipients=[user.email],
body=message,
subject=subject)
conn.send(msg)
2.添加附件
with app.open_resource("image.png") as fp:
msg.attach("image.png", "image/png", fp.read())
– END –
原文始发于微信公众号(Flask学习笔记):Flask Mail(3)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/36458.html