我有一个Python 3脚本,它使用MIMEMultipart发送一封电子邮件,其中包含已附加的.xlsx文件。我曾经在Py2上使用相同的脚本发送相同的生成文件,唯一的区别是Py2脚本从MySQL收集信息以创建.xlsx而Py3脚本使用PostgreSQL。
msg = MIMEMultipart('alternative')
msg.attach(MIMEText("""HTML stuff""", 'html'))
with open(analysis_file, "rb") as fil:
msg.attach(MIMEApplication(
fil.read(),
Content_Disposition='attachment; filename="%s"' % os.path.basename(analysis_file),
Name=os.path.basename(analysis_file)
))
msg['Subject'] = "SUBJECT"
msg['From']="Me <me@me.com>"
msg['To']= "You <you@you.com>"
server.sendmail(FROMADDR, ["you@you.com"], msg.as_string())
然而,当我切换到脚本的Py3版本时,附件停止显示在Microsoft的mail.live上。显示消息有附件的回形针符号仍然显示,但我找不到它。
- 编辑:
如果我设置自动转发到Gmail帐户,.xlsx附件通常会显示在那里;但是,如果我手动转发,则不会。
答案 0 :(得分:5)
更改
msg = MIMEMultipart('alternative')
到
msg = MIMEMultipart('html')
修好了。
答案 1 :(得分:0)