Python HTML - 嵌入式电子邮件图像为空白

时间:2018-01-21 00:59:39

标签: python html email

我正在使用smtplib发送电子邮件,并且我正在生成包含嵌入图片的电子邮件签名。我使用https://www.base64-image.de/将多个图像转换为base64字符串,我正在使用这样的编码字符串作为MIMEMultipart('mixed')消息的一部分:

body = """\
<html>
...
    <img src="%s" width = "32" height = "32">
    <img src="%s" width = "32" height = "32">
    <img src="%s" width = "32" height = "32">
...
</html>""" % (encoded_string1, encoded_string2, encoded_string3)

字符串变量的示例:

encoded_string1 = 'data:image/png;base64,iVBORw...'

电子邮件中的所有内容都会正确发送和格式化。图像位于正确的位置并且尺寸正确。但电子邮件中的图像是空白的。图像应该只是一个边界。

我无法弄清楚为什么会这样。 https://codebeautify.org/base64-to-image-converter可以将base64字符串解码为图像,我已经测试了我的base64字符串以确保它们是正确的,它们是正确的。

如果我使用的网站将图片保存为src标记中的img,则会在电子邮件中正确显示。我不想这样做,因为我无法控制托管图像的网站,如果可以避免,我不想创建自己的网站来托管图像。

有人知道为什么他们一旦发送就会在电子邮件中显示为空白?谢谢!

1 个答案:

答案 0 :(得分:2)

可能是客户端支持的问题

Send a base64 image in HTML email