用python发送正文带图片的邮件
专栏:ExASIC June 28, 2025, 3:22 p.m. 22 阅读
本文介绍如何在邮件正文插入图片

在用python发送邮件时,由于没有编辑器,对于如何插入图片,难免会有困惑。

其实,邮件正文分为两种类型,一种是纯文本(plain),另一种是html。html可以携带图片、表格、颜色、链接等丰富的文本格式。

html里插入图片,其实插入的图片的二进制文件再做Base64编码之后的数据。

# 二进制读取图片
image1 = open('mylogo.png', 'rb').read()

# 做base64编码
import base64
image1_base64 = base64.b64encode(image1).decode('utf-8')

在正文html中插入图片base64数据,仍然是用<image>标签,不同之处是src里的url需要是data:image/png;base64,{image1_base64}的格式。

htmlbody = f'''
<html>
	</body>
		<p>Dear friend,</p>
		<p>&nbsp;</p>
		<p>How are you?</p>
		<p>&nbsp;</p>
		<p>regards,</p>
		<p>Me</p>
		<p><img src="data:image/png;base64,{image1_base64}"></p>
	</body>
</html>   
'''

附:图片格式与MIME的对照表

格式MIME
pngimage/png
jpg/jpegimage/jpeg
bmpimage/bmp
webpimage/webp
gifimage/gif

另外需要注意的是,email html支持的css比较有限,并且只支持inline css。具体与email客户端有关。

 

感谢阅读,更多文章点击这里:【专栏:ExASIC】
最新20篇 开设专栏