我正在使用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
,则会在电子邮件中正确显示。我不想这样做,因为我无法控制托管图像的网站,如果可以避免,我不想创建自己的网站来托管图像。
有人知道为什么他们一旦发送就会在电子邮件中显示为空白?谢谢!