Python 嵌入图像 Thunderbird

4 投票
2 回答
788 浏览
提问于 2025-04-17 04:01

我在用Python发送邮件时,发现Thunderbird无法显示我嵌入的图片。它只显示了小空框,而图片却在邮件正文的下面(这不是典型的附件)。

在Outlook和Yahoo上,邮件显示是正常的。

我可能漏掉了什么头部信息?

self.msg = MIMEMultipart( )
fp       = open( path2img , 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
msgImage.add_header('Content-ID', '<imagename>')
msgImage.add_header('Content-Disposition' , 'inline' , filename='image.png')
msgImage.add_header('Content-Type' , 'image/png')
self.msg.attach(msgImage)

我在邮件正文中使用的图片来源是:

<img src="cid:imagename">

我到处找了也搞不明白为什么会这样!!请帮帮我。

(我的Python水平可能不太高,但足够在Outlook和Yahoo上使用)

提前谢谢你们!

2 个回答

0

我也遇到过同样的问题。只需要把MIMEMultipart的构造函数改成:

self.msg = MIMEMultipart('related')

这样就可以正常工作了。

1

你需要关注的是'filename'的值,而不是内容标识符(Content-ID)。比如:

<img src="cid:image.png"/>

想了解更多信息,可以查看这个问题:在HTML消息中显示附加的图片

撰写回答