flask发送电子邮件

Posted songyanxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask发送电子邮件相关的知识,希望对你有一定的参考价值。

1.单线程的发送

# encoding: utf-8
import sys
from flask import Flask, url_for
# Mail可以看作是邮件的客户端
# Message代表当前要发出的信息,主题/内容/接收人都封装在这里面
from flask_mail import Mail, Message

reload(sys)
sys.setdefaultencoding(utf-8)
app = Flask(__name__)

# 配置邮件:服务器/端口/安全套接字层/邮箱名/授权码/默认的发送人
app.config[MAIL_SERVER] = "smtp.qq.com"
app.config[MAIL_PORT] = 465
app.config[MAIL_USE_SSL] = True
app.config[MAIL_USERNAME] = "[email protected]"
# 这里的密码是你在邮箱中的授权码
app.config[MAIL_PASSWORD] = "qyzlojxdaledcmhbjbb"
# 显示发送人的名字
app.config[MAIL_DEFAULT_SENDER] = ‘123456<[email protected]>

mail = Mail(app)


@app.route(/)
def index():
    return <a href="">发送邮件<a/>.format(url_for(send_mail))


@app.route(/send_mail)
def send_mail():
    message = Message(我是邮件的主题, [‘123456@163.com])
    # message.body = ‘我是内容‘
    message.html = <h1>我也是内容<h1/>
    mail.send(message)
    return 邮件发送中......


if __name__ == __main__:
    app.run(debug=True)

2.多线程的发送

# encoding: utf-8
import sys
from flask import Flask, url_for
# Mail可以看作是邮件的客户端
# Message代表当前要发出的信息,主题/内容/接收人都封装在这里面
from flask_mail import Mail, Message
from threading import Thread

reload(sys)
sys.setdefaultencoding(utf-8)
app = Flask(__name__)

# 配置邮件:服务器/端口/安全套接字层/邮箱名/授权码/默认的发送人
app.config[MAIL_SERVER] = "smtp.qq.com"
app.config[MAIL_PORT] = 465
app.config[MAIL_USE_SSL] = True
app.config[MAIL_USERNAME] = "123456@qq.com"
# 这里的密码是你在邮箱中的授权码
app.config[MAIL_PASSWORD] = "qyzlojxdaledcmhbjbb"
# 显示发送人的名字
app.config[MAIL_DEFAULT_SENDER] = ‘123456<[email protected]>

mail = Mail(app)


def send_mail_thread(message):
    # 在新的线程中要,手动开启应用上下文,不然会报错
    # RuntimeError: Working outside of application context.
    with app.app_context():
        mail.send(message)


@app.route(/)
def index():
    return <a href="">发送邮件<a/>.format(url_for(send_mail))


@app.route(/send_mail)
def send_mail():
    message = Message(我是邮件的主题, [‘123456@163.com])
    # message.body = ‘我是内容‘
    message.html = <h1>我是内容<h1/>
    thread = Thread(target=send_mail_thread, args=(message,))
    thread.start()
    return 邮件发送中......


if __name__ == __main__:
    app.run(debug=True)

 

以上是关于flask发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

Flask 邮件发送

Flask-Mail 队列消息被发送到不同的电子邮件

flask 邮件发送

flask发送电子邮件

Python+flask+flask-email发送带附件的电子邮件

Flask发送注册邮件