python – html中的内嵌图像,base64,没有出现在gmail中(但是在thunderbird中)
作者:互联网
我正在从我的Gmail帐户发送电子邮件.
我正在寻找最安全的跨客户端方式来发送内联消息,以便所有这些消息都能显示内嵌图像.
使用内嵌图像通过电子邮件发送html时会出现问题:并非所有客户端/网络邮件都显示图像.我正在寻找一种既可以是客户端证明也可以是客户端的方式.
我正在使用python,我可以控制它的标题和内容类型等.
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
要么
<div style="width: 80px; height: 80px; background:
url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAA
AAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' ) no-repeat" />
使用以下html代码,图像未显示…:
> Thunderbird桌面客户端:alwasy显示
> gmail webmail:从未显示过
>雅虎网络邮箱:通常
> hotmail webmail:很少
> firefox chrome – 作为网址:始终显示
我无法弄清楚它何时起作用以及什么时候起作用的模式(除了明显的语法或编码错误).
到目前为止我做了什么:
>尝试浏览器URL(如上所述 – 它总是显示图像)
>在所有这些客户/网络邮件中打开“显示图像”
>在所有这些客户/网络邮件中打开“从xxxx显示图像”
>使用“查看消息源”(或gmail的“显示原始内容”)确认 – 图像代码通常在那里.
>从“查看源”和verified in js fiddle复制相同的代码
>添加了“utf-8”编码
>我尝试使用文件附件而不是内联base64网址发送图像.这是该方法的其他问题.
>将html消息发送为UTF-8
msgpart = MIMEText(body_html,“html”,“utf-8”)
>通过几个选项更改了消息类型..现在它是MIMEMultipart(“替代”) – 也许我应该使用另一种格式?
>尝试使用CSS表示法和IMG SRC表示法(见上文). css版本并不总是受支持.
(上面的例子来自维基百科)
甚至可以将此行放在浏览器的URL中 – 它可以工作 – 即显示图像
gmail smpt需要特殊参数吗?参数?
我想如果电子邮件显示在雷鸟中,它可能正确发送.
也许
解决方法:
据我所知,没有关于邮件用户代理(即您的邮件阅读器)如何处理内嵌图像的规则. “通常”导致您的测试是最令人不安的.
这不是你发送它们的方式,它是读者选择呈现它的方式.图形繁重的电子邮件有一个click here to view as a web page链接是有原因的,因为有太多的变化.我建议路线或只是制作多部分哑剧附件,忘记尝试可靠地内联它们.
标签:python,gmail,email,email-attachments 来源: https://codeday.me/bug/20190703/1368407.html