无法通过python中的smtplib正确发送带有附加文件的HTML电子邮件

时间:2013-10-14 19:24:18

标签: python html-email email-attachments

我尝试发送包含文本,html版本的正文和附件的电子邮件。 我使用standart python example和其他代码:

img = MIMEImage(some_image_file)
img.add_header('Content-Disposition','attachment; filename="file.jpg"')
msg.attach(text_body)
msg.attach(html_body)
msg.attach(img)

Gmail很好地展示了我的电子邮件,但yandex.com的电子邮件客户端只显示没有html或文字正文的附加图片。

如果我改变了这样的顺序:

msg.attach(img)
msg.attach(html_body)

Yandex只显示我信中的html正文,并且不显示附件!

为了在任何电子邮件客户端中正确显示我的电子邮件(html / txt正文和附件),是否需要添加任何其他标题?

1 个答案:

答案 0 :(得分:0)

在对普通电子邮件客户端发送的电子邮件标题进行一些研究后,我找到了解决方案:

body = MIMEMultipart('alternative')
msg = MIMEMultipart('mixed')
....
body.attach(text_body)
body.attach(html_body)
msg.attach(body)
msg.attach(img)