Flask Mail(3)

Flask Mail(3)
10322

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()

运行程序后,可以在收件人邮箱中验证

Flask Mail(3)
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

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!