首页 > 解决方案 > 当电子邮件中有图像附件时,python-table 丢失

问题描述

我按照指南在我的电子邮件中嵌入了图片。将这篇文章附加到我的消息后,我附加了一个数据框的 html 格式。图片在发送的电子邮件中显示良好,但是,表格完全丢失。

        with open (attachment, 'rb') as f:
            mime = MIMEBase ('image', 'png', filename='img1.png')
            mime.add_header ('Content-Disposition', 'attachment', filename='img1.png')
            mime.add_header ('X-Attachment-Id', '0')
            mime.add_header ('Content-ID', '<0>')
            mime.set_payload (f.read ())
            encoders.encode_base64 (mime)
            msg.attach (mime)
        f.close()

        msg.attach (MIMEText (
            '<h><img src="cid:0"></h>' ,'html', 'utf-8'))


        data =  pd.DataFrame({'col1':[1,2,3,4,5],'col2':[1,2,3,4,5]})
        data_html = "<body>"+ data.to_html()+"</body>"
        msg.attach(MIMEText (data_html , 'html'))

我也尝试了多部分附加(对于表格,附加为'plain'然后附加为'html'),不起作用。我尝试在标题、正文和段落级别设置 img,但似乎没有一个能让我的表格出现在下面。

任何建议都非常感谢!

标签: pythonsmtp

解决方案


所以我只是想出了如何绕过它。而不是附加

'<img src="cid:0">' 

到味精,我将此片段附加到 html 字符串中,例如

htmlf = "<body>"+"<td>"+'<img src="cid:0">'+ "</td>"+data.to_html()+"</body>"

它奏效了。

仍然不知道为什么单独附加不起作用。


推荐阅读