美文网首页
Flask邮件发送

Flask邮件发送

作者: 外衣是风 | 来源:发表于2016-12-12 20:21 被阅读108次

1、Flask通过flask-mail插件支持邮件发送
pip install flask-mail
pip install flask-script

2、下述将从两种方式验证flask-mail发送邮件,一种是脚本执行,另一种是集成在应用(程序)中发送邮件

2.1脚本方式,emails.py

from flask import Flask

from flask_mail import Message,Mail

from flask_script import Manager,Shell

import os

app=Flask( __name__)

manager=Manager(app)

mail=Mail(app)

app.config['MAIL_SERVER']="smtp.163.com"  #各个邮件服务商MAIL_SERVER不同

app.config['MAIL_PORT']=465

app.config['MAIL_USE_SSL']=True

app.config['MAIL_USERNAME']=os.environ.get("MAIL_USERNAME")

app.config['MAIL_PASSWORD']=os.environ.get("MAIL_PASSWORD")

(flask-venv) $export MAIL_USERNAME="gyc1412@163.com"

(flask-venv) $export MAIL_PASSWORD="xxxxxxx"

python emails.py shell

>>>from flask_mail import Message

>>>from emails import mail

>>>msg=Message("test subject",sender="gyc1412@163.com",

recipients=['guangyichen@sina.cn'])    

>>>msg.body="text body"

>>>msg.html='<b>HTML</b>body'

>>>with app.app_context():

...    mail.send(msg)

...

>>>

2.2 邮件发送集成到应用的方式,其中用到了多线程技术(threading)

#encoding=utf-8

from flask import Flask,render_template

from flask_mail import Message,Mailfrom threading 

import Threadfrom flask_script import Manager,Shell

import os app=Flask(__name__)

app.config['MAIL_SERVER']='smtp.163.com'

app.config['MAIL_PORT']=465

app.config['MAIL_USE_TLS']=False

app.config['MAIL_USE_SSL']=True

app.config['MAIL_USERNAME']=os.environ.get('MAIL_USERNAME')

app.config['MAIL_PASSWORD']=os.environ.get('MAIL_PASSWORD')

mail=Mail(app)manager=Manager(app)

def send_async_email(app,msg):    

    with app.app_context():              #激活上下文?        

        mail.send(msg)                   

@app.route('/')

def index():    

    msg=Message('主题',sender=os.environ.get('MAIL_USERNAME'),

recipients=['guangyichan@gmail.com'])                       

    msg.body="文本body"    

    msg.html='<b>HTML</b>body'    

    thread=Thread(target=send_async_email,args=[app,msg])          

    thread.start()    

    mail.send(msg)    

    return '异步邮件发送成功。'

if __name__  ==  '__main__': 

    manager.run()

运行:python emails.py runserver -h 0.0.0.0 -p9090 页面刷新即可发送邮件

相关文章

  • Flask-Mail 发送邮件

    Flask 发送邮件 @(Flask)[Flask开发|Flask-Mail] 使用flask-mail扩展发送电...

  • Flask邮件发送

    1、Flask通过flask-mail插件支持邮件发送pip install flask-mailpip i...

  • 邮件发送

    前言 在程序中经常使用到邮件发送功能,如何使用flask进行邮件发送呢?Flask是一个扩展性极强的框架,在Fla...

  • 2018-04-26 flask-mail

    flask-mail 1、安装 pip install flask-mail 2、配置 3、异步发送邮件

  • Flask Web开发学习笔记(五)

    本文主要介绍,如何使用Flask-Mail发送邮件。 Flask-Mail连接到简单邮件传输协议(SMTP)服务器...

  • 6.电子邮件

    涉及的包 Flask-Mail SendGrid-python 6.1使用Flask-mail发送邮件 6.1.1...

  • Python3关于current_app传递给子线程

    在学习Flask的时候,《Flask Web开发》这本书中有一个异步发送email的例子,其中用到了线程 发送邮件...

  • flask-邮件发送

    利用flask-mail实现邮件发送 qq邮箱版 网易邮箱版

  • Flask发送邮件配置

    1.安装 pip install Flask-Mail 大量邮件 通常在一个 Web 应用中每一个请求会同时发送...

  • flask项目下,邮件的异步发送

    web项目邮件的发送必不可少,这里推荐两种在flask下的邮件的异步发送。 1:使用thread模块: 特点:配置...

网友评论

      本文标题:Flask邮件发送

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