flask 发送邮件接口

903 阅读1分钟

from flask import Flask, jsonify
from flask.ext.mail import Mail, Message
import os

app = Flask(__name__)
app.config.update(
    DEBUG = True,
    MAIL_SERVER= '******',  # 邮箱服务器
    MAIL_PROT= 25,  # 每种邮箱服务器都有自己的端口
    MAIL_USE_TLS = True,
    MAIL_USE_SSL = False,
    MAIL_USERNAME = '******',  # 邮箱账户
    MAIL_PASSWORD = '******',  # 邮箱密码
    MAIL_DEBUG = True
)

mail = Mail(app)

@app.route('/sendEmail/')
def sendEmail():
    # sender 发送方,recipients 接收方列表
    msg = Message("Flask邮件发送服务",sender= "******", recipients=['******','******','******'])
    # 邮件正文 
    msg.body = "This is a first email"
    # 邮件附件
    with app.open_resource("./全国天气数据.txt") as fp:
        msg.attach("全国天气数据.txt", "text/plain", fp.read())

    mail.send(msg)
    return jsonify(dict(msg="Success"))

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

msg.attach("文件名", "媒体类型", "实际文件数据") 

Message类的attach()方法接受三个定义附件的参数: 文件名就是收件人看到的与附件关联的名称。 媒体类型定义了这种附件的类型,这有助于电子邮件读者适当地渲染它。  最后一个参数包含附件内容的字符串或字节序列。

文件类型可查:

www.w3school.com.cn/media/media… 

防止访问阻塞,可以异步发送邮件:blog.csdn.net/weixin_3638…