【问题标题】:Send HTML image email in python在 python 中发送 HTML 图像电子邮件
【发布时间】:2021-08-22 12:15:10
【问题描述】:

我正在尝试发送带有内嵌图像的 HTML 电子邮件,但图像没有出现,对于某些系统,它工作正常并且图像正在显示,但对于某些系统,它没有出现,请查看附件图像以供参考。

我还尝试使用数据 uri 绕过图像

<td>
    <img style="display:block;"   src ="{{ image_tag }}" alt="check" 
    width="100%"></p>
</td>
data_uri= base64.b64encode(open('C://Users//Desktop//work.png', 
'rb').read()).decode('utf-8')
image_tag = "data:image/png;base64,"+ data_uri
with open('C://Users//Desktop//final.html', encoding='utf-8-sig') as myfile:
    outerdata=myfile.read()
    template = Template(outerdata)
    finalpage=template.render(image_tag = image_tag)

【问题讨论】:

  • 很多邮件客户端不支持base64编码
  • 您必须将其作为附件包含在内,使用 cid 的链接

标签: python base64 html-email email-attachments data-uri


【解决方案1】:

正如mousetail所说,很多邮件客户端不支持base64编码https://www.caniemail.com/features/image-base64/

以下内容您几乎是正确的:

<td> <img src="C:\Users\Desktop\work.png" alt="Capgemini" style="display:block; margin-left:auto; margin-right:auto;"> </td>

但首先将图像上传到互联网,在一个公开的地方(即某些网站)。那么src应该是src="https://www.somewhere.com/image.png"

没有说明,但是,如果您希望图像居中,则应在块元素上执行此操作,而不是尝试将 &lt;img&gt; 更改为块。原因是 Outlook 桌面不支持将内联元素更改为阻止或反之亦然。

【讨论】:

    猜你喜欢
    • 2015-08-01
    • 2013-04-20
    • 2011-06-08
    • 2012-04-07
    • 2014-09-14
    • 2011-02-21
    • 2012-08-27
    • 2013-11-11
    • 2010-10-27
    相关资源
    最近更新 更多