【问题标题】:Can't properly send HTML email with attached file via smtplib in python无法通过 python 中的 smtplib 正确发送带有附件的 HTML 电子邮件
【发布时间】:2023-04-09 09:22:01
【问题描述】:

我尝试发送包含文本、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 正文和附件)?

【问题讨论】:

    标签: python html-email email-attachments


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-10-22
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 2011-07-31
      • 2015-07-23
      • 2013-11-26
      • 1970-01-01
      相关资源
      最近更新 更多