美文网首页
Flask-Mail

Flask-Mail

作者: SingleDiego | 来源:发表于2018-10-16 15:28 被阅读27次

    参考:https://blog.csdn.net/wbin233/article/details/73222027




    安装 Flask-Mail

    pip install Flask-Mail
    




    配置 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 的。一般用于添加附件。




    邮件操作

    邮件是通过一个 Mail 实例进行管理。

    from flask import Flask
    from flask_mail import Mail
    
    app = Flask(__name__)
    # ...
    app.config['MAIL_SERVER'] = 'smtp.qq.com' # 以QQ邮箱为例
    app.config['MAIL_PORT'] = 465
    app.config['MAIL_USE_SSL'] = True
    app.config['MAIL_USE_TLS'] = False
    app.config['MAIL_USERNAME'] = 'XXX@qq.com'
    app.config['MAIL_PASSWORD'] = '填授权码'
    # ...
    mail = Mail(app)
    

    在这个例子中所有的邮件将会使用传入到 Mail 实例中的配置项进行发送。

    创建发送邮件的内容
    from flask_mail import Message
    
    msg = Message(
        subject="Hello World!", # 邮件标题
        body="test!", # 正文内容
        sender="xxx@qq.com", # 发送者
        recipients=["xxx@126.com"] # 收件人
        )
    

    sender 为发送方,如果你设置了 MAIL_DEFAULT_SENDER,就不必再次填写发件人,默认情况下将会使用配置项的发件人。

    recipients 为接收方,可以设置一个或者多个收件人,也可以后续再添加,例如:

    msg.recipients = ["xxx@qq.com"]
    msg.add_recipient("xxxx@qq.com") # 新增收件人
    

    sender 也可以是一个二元组,它将会被分成姓名和邮件地址:

    sender=("Me", "me@example.com")
    

    邮件内容可以包含主体以及/或者 HTML:

    msg.body = "testing"
    msg.html = "<b>testing</b>"
    

    最后,发送邮件的时候请使用 Flask 应用设置的 Mail 实例:

    mail.send(msg)
    

    这里是一个完整例子:

    from flask import Flask
    from flask_mail import Mail
    
    app = Flask(__name__)
    
    app.config['MAIL_SERVER'] = 'smtp.qq.com'
    app.config['MAIL_PORT'] = 465
    app.config['MAIL_USE_SSL'] = True
    app.config['MAIL_USE_TLS'] = False
    app.config['MAIL_USERNAME'] = 'xxxxxx@qq.com' 
    app.config['MAIL_PASSWORD'] = '**********' # 授权码
    
    
    mail = Mail(app)
    
    
    from flask_mail import Message
    msg = Message(
        subject="Hello World!",
        body="test!",
        sender="xxxxx@qq.com",
        recipients=["xxxxxx@126.com"]
        )
    
    
    @app.route('/')
    def hello_world():
        mail.send(msg)
        return 'Hello World!'
    
    if __name__ == '__main__':
        app.run()
    

    当我们打开 http://127.0.0.1:5000/ 时候,邮件就会发送。

    相关文章

      网友评论

          本文标题:Flask-Mail

          本文链接:https://www.haomeiwen.com/subject/cpoczftx.html