邮件发送

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邮件的配置和使用相关推荐

  1. flask框架和配置

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录​​​​​​ flask框架介绍 flsak框架的安装 实现Flask基本操作 Flask的配置​​​ flask框架介绍 F ...

  2. 如何为 Flask Web 应用配置 Nginx

    原文地址:How to Configure NGINX for a Flask Web Application 原文作者:patricksoftware 译文出自:掘金翻译计划 本文永久链接:gith ...

  3. bitnami-redmine邮件告警配置

    bitnami-redmine邮件告警配置 配置 bitnami-redmine的配置文件与单纯的redmine配置文件可能并不相同,在这里我们需要打开一下配置文件: /opt/bitnami/app ...

  4. sybase的sysprocesses中的hostname显示不全_Linux中Postfix邮件认证配置(五)

    Postfix+Dovecot+Sasl工作原理 1.A用户使用MUA客户端借助smtp协议登陆smtpd服务器,需要先进行用户和密码认证,而SMTPD服务器端支持sasl认证,例如有一个sasl客户 ...

  5. Zabbix的邮件报警配置

    Zabbix的邮件报警配置 一.进入报警媒介 二.创建媒体类型 三.测试邮箱配置是否正确 四.关联报警媒介到用户 五.配置动作 六.配置报警媒介的信息模板 七.报警邮件测试 一.进入报警媒介 二.创建 ...

  6. Flask - app的配置和实例化Flask的参数

    目录 Flask - app的配置和实例化Flask的参数 app的配置 app的配置 Flask - app的配置和实例化Flask的参数 app的配置 基本用法: from flask impor ...

  7. zabbix 邮件报警配置

    1.邮箱配置,登陆163邮箱开启smtp和授权: 授权并记住授权码: 2.网页登陆zabbix页面配置 操作配置 名称:from xbz-web 监控信息 默认标题:故障{TRIGGER.STATUS ...

  8. 邮件服务配置(虚拟域虚拟用户)

    邮件服务配置(虚拟域&虚拟用户) 本文首发:https://www.somata.net/2019/virtual_mail_server_config_with_mariadb.html 现 ...

  9. iCloud邮件客户端配置

    iCloud邮件客户端配置 iCloud邮件客户端配置 参考: https://www.zhihu.com/question/19922629 iCloud邮件客户端配置 适用于收件服务器的 IMAP ...

最新文章

  1. 公司内部exchange2010 下删除误发邮件
  2. day 0314函数的进阶
  3. 路由器原理及作用以及交换机
  4. 地球那么大的开放世界游戏怎么做?腾讯云高级架构师为开发者设计了一套方案
  5. OCPC 广告算法在凤凰新媒体的实践探索
  6. C++面试题目(五)
  7. android日历便签,安卓手机上有日历与便签结合的app吗?
  8. cocos2d-x 2.0版本 自适应屏幕分辨率 .
  9. 网络贷款系统完整版源码,thinkphp内核开发,安全可靠,定制网贷分销平台系统
  10. 用php求常见图形的面积,技巧:数学图形面积计算的十种方法!
  11. iOS 应用安装包瘦身
  12. 智能手机谷歌眼镜都是嵌入式计算机,如何在手机上“运行”谷歌眼镜
  13. MacTex 使用教程
  14. Qt 内存管理与布局管理器
  15. canvas 花蕊绽放
  16. 非淡泊无以明志, 非宁静无以致远
  17. 使用 assembly 打包报错
  18. Offer拿到了!2023届校招继续投!
  19. 英伟达 gsync demo NVIDIA 钟摆测试
  20. 【Linux用户管理】

热门文章

  1. 计算机右下角时间格式,电脑右下角时间格式_电脑右下角时间不准
  2. oracle 10 卸载工具,完全卸载oracle10个(转)
  3. POJ 1635 Subway tree systems 树的Hash 或 树的最小表示法
  4. 惠普暗影精灵6安装Ubuntu双系统显卡及Wi-Fi问题解决
  5. 【HCIE-RS 天梯路】NDP
  6. android usb 以太网,如何在Android智能手机上通过USB-OtG使用连接USB的有线以太网适配器?...
  7. 【CISSP备考】第8章:安全模型、设计和能力的原则
  8. 软件版权申请流程有哪些
  9. win10 64位注册TeeChart8.ocx
  10. 电脑开机黑屏,只有鼠标箭头(windows无法加载桌面)?