[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 "邮件发送测试"

分模块的我就不展示了

相关推荐
i***22071 分钟前
springboot整合libreoffice(两种方式,使用本地和远程的libreoffice);docker中同时部署应用和libreoffice
spring boot·后端·docker
APIshop7 分钟前
Python 零基础写爬虫:一步步抓取商品详情(超细详解)
开发语言·爬虫·python
e***877031 分钟前
windows配置永久路由
android·前端·后端
二川bro33 分钟前
AutoML自动化机器学习:Python实战指南
python·机器学习·自动化
代码or搬砖37 分钟前
SpringMVC的执行流程
java·spring boot·后端
杨超越luckly1 小时前
基于 Overpass API 的城市电网基础设施与 POI 提取与可视化
python·数据可视化·openstreetmap·电力数据·overpass api
极光代码工作室1 小时前
基于SpringBoot的流浪狗管理系统的设计与实现
java·spring boot·后端
Rust语言中文社区2 小时前
【Rust日报】Dioxus 用起来有趣吗?
开发语言·后端·rust
小灰灰搞电子2 小时前
Rust Slint实现颜色选择器源码分享
开发语言·后端·rust
q***23572 小时前
python的sql解析库-sqlparse
数据库·python·sql