我正在从我的 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 桌面客户端:一直显示
- gmail webmail:从未显示
- 雅虎网络邮箱:通常
- hotmail 网络邮件:很少
- firefox + chrome - 作为 url:总是显示
我无法弄清楚它何时工作以及何时不工作的模式(除了明显的语法或编码错误)。
到目前为止我做了什么:
- 尝试浏览器 URL(如上所述 - 它总是显示图像)
- 在所有这些客户端/网络邮件中打开“显示图像”
- 在所有这些客户端/网络邮件中打开“显示来自 xxxx 的图像”
- 用“查看消息源”(或 gmail 的“显示原始”)确认 - 图像代码通常在那里。
- 从“查看源代码”复制相同的代码并在 js fiddle 中验证
- 添加了“utf-8”编码
- 我尝试使用文件附件而不是内联 base64 url 发送图像。这种方法还有其他问题。
以 UTF-8 格式发送 html 消息
msgpart = MIMEText(body_html, "html", "utf-8")通过几个选项更改消息类型.. 现在是 MIMEMultipart("alternative") - 也许我应该使用另一种格式?
- 尝试使用 CSS 表示法和 IMG SRC 表示法(见上文)。并不总是支持 CSS 版本。
(以上示例取自维基百科)
甚至可以将这一行放在浏览器的 URL 中——它可以工作——即显示图像
gmail smpt 是否需要特殊参数?参数?
我想如果电子邮件显示在雷鸟中,它可能被正确发送。
也许