4

我正在从我的 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 是否需要特殊参数?参数?

我想如果电子邮件显示在雷鸟中,它可能被正确发送。

也许

4

1 回答 1

2

据我所知,没有关于邮件用户代理(即您的邮件阅读器)如何处理内联图像的规则。测试中的“通常”结果是最令人不安的。

这不是您发送它们的方式,而是读者选择呈现它的方式。图形繁重的电子邮件单击此处以作为网页链接查看是有原因的,因为变化太多。我建议使用该路线,或者只是将它们制作成多部分哑剧附件,而忘记尝试可靠地内联它们。

于 2013-08-19T11:45:29.480 回答