前提代码编码格式为UTF-8 设置方式是在文件第一行或第二行# -- coding:utf-8 --flask
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有的差别app
邮件服务器的配置参考flask-mail标准配置便可编码
发送邮件excel
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)