• Flask 学习61.FlaskMail 发送邮件 上海


    前言

    在Flask框架中使用Flask-Mail邮件库来管理电子邮件的收发。

    环境准备

    执行pip安装Flask-Mail

    pip install flask-mail
    

    Flask-Mail 使用配置

    创建Flask项目,基本如下所示:

    app.config['MAIL_SERVER']='smtp.gmail.com'
    app.config['MAIL_PORT'] = 465
    app.config['MAIL_USERNAME'] = 'yourId@gmail.com'
    app.config['MAIL_PASSWORD'] = '*****'
    app.config['MAIL_USE_TLS'] = False
    app.config['MAIL_USE_SSL'] = True
    

    相关配置参数和描述

    参数 描述
    MAIL_SERVER 邮件服务器的名称/IP地址
    MAIL_PORT 使用的服务器的端口号
    MAIL_USE_TLS 启用/禁用传输安全层加密
    MAIL_USE_SSL 启用/禁用安全套接字层加密
    MAIL_DEBUG 调试支持。默认值是Flask应用程序的调试状态
    MAIL_USERNAME 发件人的用户名
    MAIL_PASSWORD 发件人的密码
    MAIL_DEFAULT_SENDER 设置默认发件人
    MAIL_MAX_EMAILS 设置要发送的最大邮件数
    MAIL_SUPPRESS_SEND 如果app.testing设置为true,则发送被抑制
    MAIL_ASCII_ATTACHMENTS 如果设置为true,则附加的文件名将转换为ASCII

    Mail类 和 Message 类

    Mail类主要方法和描述

    方法 描述
    send() 发送Message类对象的内容
    connect() 与邮件主机打开连接
    send_message() 发送消息对象

    Message类构有几个参数:

    Message(subject, recipients, body, html, sender, cc, bcc, 
       reply-to, date, charset, extra_headers, mail_options, rcpt_options)
    

    Message类方法
    attach() - 为邮件添加附件。此方法采用以下参数:

    • filename - 要附加的文件的名称
    • content_type - MIME类型的文件
    • data - 原始文件数据
    • add_recipient() - 向邮件添加另一个收件人

    完整示例代码

    以下是一个简单的发邮件示例

    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_USERNAME'] = '283340479@qq.com'
    app.config['MAIL_PASSWORD'] = '**************'
    app.config['MAIL_USE_TLS'] = False
    app.config['MAIL_USE_SSL'] = True
    
    # Mail 实例
    mail = Mail(app)
    
    
    @app.route("/mail")
    def send_mail():
        message = Message('Hello World!', sender='283340479@qq.com', recipients=['283340479@qq.com'])
        message.body = "Hello Flask message sent from Flask-Mail"
        mail.send(message)
        return {"msg": "send mail ok"}
    
    
    if __name__ == '__main__':
        app.run(debug=True)
    

    访问接口,就可以收到邮件了

  • 相关阅读:
    BDB c++例子,从源码编译到运行
    Linux的nm查看动态和静态库中的符号
    转:js包装DOM对象
    svn笔记4属性Properties
    c++ 友元函数
    转:js包装DOM对象
    整除规则(原理,性质)
    回溯法求幂集
    转:Javascript继承机制的设计思想
    javascript prototype __proto__区别
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/16669065.html
Copyright © 2020-2023  润新知