zoukankan      html  css  js  c++  java
  • Flask学习记录之Flask-Mail

    Flask-Mail可以连接到配置中的SMTP服务器,进行邮件发送,如果没有进行SMTP服务器的配置,将会默认连接到localhost上的

    一.配置及初始化

    (1)flask应用配置

    #配置选项
    MAIL_SERVER = 'smtp.qq.com' #邮件服务器
    MAIL_PORT = 25 #端口
    MAIL_USE_TLS = False#传输层安全协议
    MAIL_USE_SSL = False #安全套接层协议
    MAIL_USERNAME = 'you' #账号
    MAIL_PASSWORD = 'your-password'#密码

     (2)初始化

    from flask.ext.mail import Mail
    from flask import Flask
    
    app = Flask(__name__)
    mail = Mail(app)

    二.发送邮件

    from flask.ext.mail import Message
    from app import mail
    
    #创建一封邮件
    msg = Message("邮件主题",
                    sender='skkg@qq.com',
                    recipients=['123@qq.com','321@qq.com']
                    )
    msg.body = '文本内容'
    msg.html = '<b>HTml内容</b>'
    
    #发送邮件,flask-mail需要在current_app上下文中发送邮件
    with app.app_context():
        mail.send(msg)

    辅助邮件发送函数

    def send_email(to, subject, template, **kwargs):
        app = current_app._get_current_object()
        msg = Message(subject,
                      sender= 'skkg@qq.com',
                      recipients=[to])
        msg.body = render_template(template + '.txt', **kwargs)
        msg.html = render_template(template + '.html', **kwargs)
        #在新线程中发送邮件
        thr = Thread(target=send_async_mail, args=[app, msg])
        thr.start()
        return thr
    
    #异步发送邮件,加快速度
    def send_async_mail(app, msg):
        with app.app_context():
            mail.send(msg)
  • 相关阅读:
    fork 开源项目后如何参与项目
    C51 头文件中的 extern
    windows常用命令
    boost(barrier)
    boost库(条件变量)
    线程间同步的几种方式(了解)
    stl 迭代器(了解)
    std::thread
    同步,异步,阻塞,非阻塞
    std::thread join和detach区别
  • 原文地址:https://www.cnblogs.com/agmcs/p/4445795.html
Copyright © 2011-2022 走看看