flask-mail 发送带附件的邮件

Flask-Mail包装了Python标准库中的smtplib包,简化了在Flask程序中发送电子邮件的过程。

Flask-Mail通过连接SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器来发送邮件。在开始发送电子邮件前,我们需要配置SMTP服务器。在开发和测试阶段,我们可以使用邮件服务提供商的SMTP服务器(比如QQ),这时我们需要对Flask-Mail进行配置。

配置邮箱服务器

QQ授权码在QQ邮箱设置中进行配置。
在这里插入图片描述配置项如下:

MAIL_SERVER = 'smtp.qq.com',
MAIL_PROT = 587,
MAIL_USE_TLS = True,
MAIL_USE_SSL = False,
MAIL_USERNAME = "",
MAIL_PASSWORD = "",
MAIL_DEBUG = True

代码

# -*- coding: utf-8 -*-
import os
import sys

from flask import Flask
from flask_mail import Mail
from flask_mail import Message


app = Flask(__name__)

app.config.update(dict(
    DEBUG=True,
    MAIL_SERVER="smtp.qq.com",
    MAIL_PORT=587,
    MAIL_USE_TLS=True,
    MAIL_USERNAME="xx@qq.com",
    MAIL_PASSWORD="xx", # QQ 授权码
    MAIL_DEFAULT_SENDER=('xx', "xx"),
))

mail = Mail(app)

# 去除空格
# app.jinja_env.trim_blocks = True
# app.jinja_env.lstrip_blocks = True


@app.route('/send_mail')
def send_mail():
    subject = 'flask_mail 测试'
    recipients = ['Tom <xx@163.com>']
    body = '这是一封测试邮件'
    message = Message(
        subject=subject, sender=app.config['MAIL_USERNAME'], recipients=recipients)
    message.body = body

    # 加载附件
    with app.open_resource('./xx.pdf') as fp:
        # attach("文件名", "类型", 读取文件)
        message.attach("简历.pdf", 'application/octet-stream', fp.read())

    try:
        mail.send(message)
        return '发送成功'
    except expression as e:
        print(e)
        return '发送失败'


if __name__ == "__main__":
    app.debug = True
    app.run()

参考资料

-Flask-Mail

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值