[flask] flask-mail邮件发送

要让个人邮箱可以利用邮箱服务器发送邮件,需要打开服务并获取专属授权码。(在邮箱设置的账号设置里面)

在app文件中初始化之前必须要进行配置,设置个人邮箱信息

python 复制代码
MAIL_SERVER 电子邮件服务器的名称/IP地址
MAIL_PORT 使用的服务器的端口号
MAIL_USE_TSL 启用/禁用传输安全层加密
MAIL_USE_SSL 启用/禁用安全套接字层加密
MAIL_DEBUG 调用支持。默认值是Flask应用程序的调试状态
MAIL_USERNAME 发件人的用户名
MAIL_PASSWORD 发件人的密码
MAIL_DEFAULT_SENDER 设置默认发件人
MAIL_MAX_EMAILS 设置要发送的最大邮件数
MAIL_SUPPRESS_SEND 如果app.testing 设置为true,则发送被抑制
MAIL_ASCII_ATTACHMENTS 如果设置为true,则附加的文件名将转换为ASCII

引入flask-mail 库包,创建邮箱对象

python 复制代码
#在模块化py文件中写法
#exts文件
from flask_mail import Mail
mail = Mail()
#app文件
from exts import mail
app.config.from_object(config)
mail.init_app(app)  #初始化mail对象,在这之前必须要绑定配置信息

发送消息

python 复制代码
from flask_mail import Message #消息对象
message = Message(subject="邮箱测试",recipients = ["202020502014@mails.zstu.edu.cn"],body="邮箱测试主题内容"); 
mail.send(message);

消息对象可以设置的参数:

  • subject 主题
  • recipients 收件人
  • sender 发件人
  • body 消息内容
  • html 发送内容,html形式
  • attachments 附件

整理代码

直接在app.py中所使用

python 复制代码
from flask_mail import Mail,Message

#配置信息
MAIL_SERVER = "smtp.qq.com"
MAIL_USE_SSL = True
MAIL_PORT = 465
MAIL_USERNAME = "****@qq.com"    #自己的邮箱
MAIL_DEFAULT_SENDER = "*****@qq.com"     #自己的邮箱
MAIL_PASSWORD = "*****"  #授权码

#初始化Mail类
mail = Mail(app)

#使用mail发送消息
@auth.route("/mail/test")
def mail_test():
    # Message 参数 第一个参数是subject:主题,
    # recipients 收件人
    # sender送件人列表,
    # body 是 设置文本, html是写入html文本
    # attachments 附件
    message = Message(subject="邮箱测试",recipients = ["****"],body="邮箱测试主题内容");
    mail.send(message);
    return "邮件发送测试"

分模块的我就不展示了

相关推荐
Goboy4 分钟前
夯爆了,我被一个一句话接入的免费可观测平台策反了,那一刻我决定放弃用了3年的Prometheus
后端·docker·kubernetes
回家路上绕了弯43 分钟前
Agent in the Sandbox:当 AI 有了自己的开发环境
后端
陈随易1 小时前
TanStarter,从搭建到支付,一步到位开始赚美元
前端·后端·程序员
Rain的Java大神之路1 小时前
公交App上“还有2站,约5分钟”怎么实现?90%的人答错这道大厂面试题:GPS漂移、ETA不准、10万QPS热点读全拆透(附完整代码)
java·后端·面试
小小张说故事1 小时前
Python 的 a[1:5:2] 到底切出了什么?拆开 slice 对象、__getitem__ 与负步长那次反向
python
挖掘狂人1 小时前
MySQL 深分页优化:limit 100000, 10 慢在哪,怎么救
后端·sql·mysql
wuyk5551 小时前
PyQt6-第15讲-数据可视化QChart
python·ui·信息可视化·pyqt
天天被压力1 小时前
【A股分钟级高频数据完全手册 #04】指数分钟级行情数据接口:沪深指数Pro版最新分时取数
java·人工智能·python
敲代码的小小酥2 小时前
谈SpringMVC与Spring WebFlux的区别与适用场景
java·后端·spring
IT_陈寒2 小时前
Redis开发实战:从入门到精通
前端·人工智能·后端