Python学习之Flask-Mail异步邮件发送
来源:互联网 发布:北球电磁炉淘宝不能卖 编辑:程序博客网 时间:2024/05/29 23:23
学习Pythonweb中的微型flask框架有几天了,深深的感觉flask上的插件用着非常的方便,使用起来也是非常的舒服,突然有种不想学javaweb的冲动!(东西太多了。。)
首先介绍下flask-mail:
- python 标准库中的smtplib 包 可以用在 flask 程序中发送电子邮件
- 而 flask-mail封装了smtplib 可以更好的与 Flask 框架集成起来
注意:在使用Flask-Mail发送邮件之前首先要确保你使用的邮箱中的smtp服务开启,不同邮箱的开启方法不同,这个自己百度就行,这里介绍下QQ邮箱的打开方法。
在QQ邮箱中的设置中找到账户:
在下面找到服务选项:
注意:记得保存好给你的授权码,在程序中如果尽量不要把授权码直接写入,可以保存到环境变量中使用的时候从环境中导入。
还有每个邮箱的端口也是不一样的,具体看邮箱的客户端中的设置,比如腾讯的协议如下:
具体代码如下:
import threadingfrom flask import Flaskfrom flask.ext.mail import Mail, Messageapp = Flask(__name__)app.config.update( DEBUG = True, MAIL_SERVER='smtp.qq.com', MAIL_PROT=465, MAIL_USE_TLS = True, MAIL_USE_SSL = False, MAIL_USERNAME = '邮箱地址', MAIL_PASSWORD = = os.environ.get('MAIL_PASSWORD'),#从系统中获取授权码 MAIL_DEBUG = True)mail = Mail(app)@app.route('/')def index(): send_mail() print('email send!!') return "Sent"def send_async_email(app, msg): with app.app_context(): mail.send(msg)def send_mail(): #sender-发件人邮箱 recipients-收件人邮箱 msg = Message("Hi!This is a test ",sender='*********@qq.com', recipients=['*********@qq.com']) msg.body = "This is a first email" #Flask支持很多,比如附件和抄送等功能,根据需要自己添加就可以 # msg.attach 邮件附件添加 # msg.attach("文件名", "类型", 读取文件) # with app.open_resource("F:\2281393651481.jpg") as fp: # msg.attach("image.jpg", "image/jpg", fp.read()) thr = threading.Thread(target =send_async_email, args = [app,msg])#创建线程 thr.start()if __name__ == "__main__": app.run()
Flask-Mail 使用同步模式发送电子邮件。
从电子邮件发送开始,直到电子邮件交付后,给浏览器发回其响应,在整个过程中,Web服务器会一直阻塞。如果我们试图发送电子邮件到一个服务器是缓慢的,甚至更糟糕的,暂时处于脱机状态,所以使用多线程异步发送电子邮件可以避免处理请求过程中不必要的延迟,将发送电子邮件的函数移到后台线程中,能够使程序更加流畅!但实际上,还可以用其他的方式,比如线程和多进程模块也可以实现异步任务。
这个根据需求来具体实现。
以上就是使用flask-mail来实现异步邮件发送的一些基本内容
1 0
- Python学习之Flask-Mail异步邮件发送
- 使用Python Flask-mail发送邮件
- [python3.6 flask web学习]使用Flask-Mail发送邮件
- flask 异步发送邮件
- Flask-Mail邮件发送问题
- 使用Flask-Mail发送邮件
- python Flask发送邮件
- python flask发送邮件
- 使用 flask-mail 扩展发送邮件
- 用Flask-mail发送邮件失败解决方案
- 使用Flask-Mail扩展发送邮件
- 使用Flask-Mail发送QQ邮件
- flask:使用flask-mail客户端访问触发发送邮件
- Flask Web 开发 发送异步邮件
- python学习之 发送邮件
- Flask学习记录之Flask-Mail
- VB.net学习笔记之发送邮件:System.Net.Mail
- Flask-Mail邮件的配置以及发送附件的方法
- 【转】<C++ Primer 5th>Template模板笔记
- nginx学习5——配置虚拟主机以,检查nginx配置的方法,windows下的配置
- MB9002字库地址
- Sublime Text 3(续)
- 优秀程序员不得不知道的20个位运算技巧
- Python学习之Flask-Mail异步邮件发送
- leetcode-130. Surrounded Regions
- 【ssm个人博客项目实战02】easy UI搭建后台管理界面
- 从功能实现到实现设计
- HTML中引入CSS的四种方法(前端css面试题)
- 在ubuntu上安装以及新建openframeworks工程
- IntelliJ IDEA 热部署插件 JRebel 安装激活及使用
- java.lang.NoClassDefFoundError: com.android.tools.fd.runtime.AppInfo
- int (*func(int)) (int *,int)