Flask邮件的配置和使用
邮件发送
flask-mail
说明:专门用于邮件发送的扩展库,使用非常方便。
安装:
pip install flask-mail
使用:
from flask_mail import Mail, Message import os# 邮件发送配置,一定要放在创建Mail对象之前 app.config['MAIL_SERVER'] = '*******************' # 用户名 app.config['MAIL_USERNAME'] =‘ ******' # 授权码 app.config['MAIL_PASSWORD'] = os.getenv('MAIL_PASSWORD', '123456')# 创建发送邮件的对象 mail = Mail(app)@app.route('/send/') def send():# 创建邮件消息对象msg = Message('账户激活',recipients=['接受者邮箱'],sender=app.config['MAIL_USERNAME'])msg.html = '恭喜你,中奖了!!!'# 发送邮件mail.send(msg)return '邮件已发送'
封装函数发送邮件
def send_mail(subject, to, template, *args, **kwargs):if isinstance(to, (list,turple):recipients = toelif isinstance(to, str):recipients = to.split(',')else:raise Exception('邮件接收者参数类型有误')# 创建邮件消息对象msg = Message(subject,recipients=recipients,sender=app.config['MAIL_USERNAME'])# 将邮件模板渲染后作为邮件内容msg.html = render_template(template, *args, **kwargs)# 发送邮件mail.send(msg)
异步发送邮件
from flask import current_app# 异步发送邮件任务 def async_send_mail(app, msg):# 邮件发送必须在程序上下文# 新的线程中没有上下文,因此需要手动创建with app.app_context():mail.send(msg)# 封装函数发送邮件 def send_mail(subject, to, template, *args, **kwargs):if isinstance(to, list):recipients = toelif isinstance(to, str):recipients = to.split(',')else:raise Exception('邮件接收者参数类型有误')# 创建邮件消息对象msg = Message(subject,recipients=recipients,sender=app.config['MAIL_USERNAME'])# 将邮件模板渲染后作为邮件内容msg.html = render_template(template, *args, **kwargs)# 异步发送邮件# current_app是app的代理对象# 根据代理对象current_app找到原始的appapp = current_app._get_current_object()# 创建线程thr = Thread(target=async_send_mail, args=(app, msg))# 启动线程thr.start()# 返回线程return thr
QQ邮件发送额外配置:需要配置QQ邮箱开启smtp服务,然后设置授权码
# 邮箱端口 app.config['MAIL_PORT'] = 465 # 使用SSL(加密传输) app.config['MAIL_USE_SSL'] = True # 不是QQ邮箱的密码,而是授权码 app.config['MAIL_PASSWORD'] = '授权码'
环境变量
- windows:
- 设置:
set 环境变量名=值
- 获取:
set 环境变量名
- 设置:
- linux:
- 导出:
export 环境变量名=值
- 获取:
echo $环境变量名
- 导出:
- 代码:
os.getenv('环境变量名', '123456')
Flask邮件的配置和使用相关推荐
- flask框架和配置
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 flask框架介绍 flsak框架的安装 实现Flask基本操作 Flask的配置 flask框架介绍 F ...
- 如何为 Flask Web 应用配置 Nginx
原文地址:How to Configure NGINX for a Flask Web Application 原文作者:patricksoftware 译文出自:掘金翻译计划 本文永久链接:gith ...
- bitnami-redmine邮件告警配置
bitnami-redmine邮件告警配置 配置 bitnami-redmine的配置文件与单纯的redmine配置文件可能并不相同,在这里我们需要打开一下配置文件: /opt/bitnami/app ...
- sybase的sysprocesses中的hostname显示不全_Linux中Postfix邮件认证配置(五)
Postfix+Dovecot+Sasl工作原理 1.A用户使用MUA客户端借助smtp协议登陆smtpd服务器,需要先进行用户和密码认证,而SMTPD服务器端支持sasl认证,例如有一个sasl客户 ...
- Zabbix的邮件报警配置
Zabbix的邮件报警配置 一.进入报警媒介 二.创建媒体类型 三.测试邮箱配置是否正确 四.关联报警媒介到用户 五.配置动作 六.配置报警媒介的信息模板 七.报警邮件测试 一.进入报警媒介 二.创建 ...
- Flask - app的配置和实例化Flask的参数
目录 Flask - app的配置和实例化Flask的参数 app的配置 app的配置 Flask - app的配置和实例化Flask的参数 app的配置 基本用法: from flask impor ...
- zabbix 邮件报警配置
1.邮箱配置,登陆163邮箱开启smtp和授权: 授权并记住授权码: 2.网页登陆zabbix页面配置 操作配置 名称:from xbz-web 监控信息 默认标题:故障{TRIGGER.STATUS ...
- 邮件服务配置(虚拟域虚拟用户)
邮件服务配置(虚拟域&虚拟用户) 本文首发:https://www.somata.net/2019/virtual_mail_server_config_with_mariadb.html 现 ...
- iCloud邮件客户端配置
iCloud邮件客户端配置 iCloud邮件客户端配置 参考: https://www.zhihu.com/question/19922629 iCloud邮件客户端配置 适用于收件服务器的 IMAP ...
最新文章
- 公司内部exchange2010 下删除误发邮件
- day 0314函数的进阶
- 路由器原理及作用以及交换机
- 地球那么大的开放世界游戏怎么做?腾讯云高级架构师为开发者设计了一套方案
- OCPC 广告算法在凤凰新媒体的实践探索
- C++面试题目(五)
- android日历便签,安卓手机上有日历与便签结合的app吗?
- cocos2d-x 2.0版本 自适应屏幕分辨率 .
- 网络贷款系统完整版源码,thinkphp内核开发,安全可靠,定制网贷分销平台系统
- 用php求常见图形的面积,技巧:数学图形面积计算的十种方法!
- iOS 应用安装包瘦身
- 智能手机谷歌眼镜都是嵌入式计算机,如何在手机上“运行”谷歌眼镜
- MacTex 使用教程
- Qt 内存管理与布局管理器
- canvas 花蕊绽放
- 非淡泊无以明志, 非宁静无以致远
- 使用 assembly 打包报错
- Offer拿到了!2023届校招继续投!
- 英伟达 gsync demo NVIDIA 钟摆测试
- 【Linux用户管理】
热门文章
- 计算机右下角时间格式,电脑右下角时间格式_电脑右下角时间不准
- oracle 10 卸载工具,完全卸载oracle10个(转)
- POJ 1635 Subway tree systems 树的Hash 或 树的最小表示法
- 惠普暗影精灵6安装Ubuntu双系统显卡及Wi-Fi问题解决
- 【HCIE-RS 天梯路】NDP
- android usb 以太网,如何在Android智能手机上通过USB-OtG使用连接USB的有线以太网适配器?...
- 【CISSP备考】第8章:安全模型、设计和能力的原则
- 软件版权申请流程有哪些
- win10 64位注册TeeChart8.ocx
- 电脑开机黑屏,只有鼠标箭头(windows无法加载桌面)?