您的位置:首页 > 大数据 > 人工智能

Flask-mail 邮件带中文名称的附件

2016-03-14 15:13 501 查看
前提代码编码格式为UTF-8
设置方式是在文件第一行或第二行# -- coding:utf-8 --

MIME格式

MIME_TYPE = {
'.xls':  'application/vnd.ms-excel',
'.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'.txt':  'text/plain',
'.pdf':  'application/pdf',
'.doc':  'application/msword',
'.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
'.ppt':  'application/vnd.ms-powerpoint',
'.rar':  'application/rar',
'.zip':  'application/zip',
'.tar':  'application/x-tar',
'.gz':   'application/x-gzip'
}

根据自身的需求到w3school(http://www.w3school.com.cn/media/media_mimeref.asp) 查找
office 2007之后的版本Excel、word、ppt有的差异

邮件服务器的配置参考flask-mail标准配置即可

发送邮件

from flask.ext.mail import Mail, Message
msg = Message(邮件标题,
sender='发件人地址',
recipients=['多个收件人地址']
)
# 添加多个附件
for document in documents_path:
# 文件的文件名
file_name = os.path.basename(document)
with current_app.open_resource(document) as fp:
# file_name.encode("utf-8") 对文件名进行编码
# current_app.config['MIME_TYPE'][os.path.splitext(file_name)[1]] 通过后缀名,获取MIME格式
msg.attach(file_name.encode("utf-8"), current_app.config['MIME_TYPE'][os.path.splitext(file_name)[1]], fp.read())

msg.body = 邮件正文
# 发送邮件
mail.send(msg)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: