ActionMailer电子邮件图像在某些客户端中断开

Jod*_*ner 5 image actionmailer html-email

我正在使用ActionMailer发送电子邮件,这些电子邮件包含图片.要正确设置我正在使用的图像<%= image_tag('email-logo.png') %>config.action_controller.asset_host正在进行分段/生成的图像.

这些图像在Outlook中看起来很好(我也在一些临时电子邮件服务中尝试过,它们也可以在那里工作),但在Gmail,Apple Mail(桌面+ iOS)和邮箱应用程序中看起来很糟糕.

电子邮件HTML版本的编码quoted-printable是正确的吗?

当我在Gmail中检查原始电子邮件时,图像的标记显示为:

  <img alt=3D"Site Logo" class=3D"logo" src=3D"//staging.mysite.come/ass=
ets/email-logo-98e7cf6a48a4f2186ab9de2dcdfaa4bf0.png" style=3D"width: 30=
px; display: inline; vertical-align: middle;" />
Run Code Online (Sandbox Code Playgroud)

当我=在浏览器中删除并加载URL时,它显示正常.请问=要打破它?可能是图片网址中缺少协议吗?

在此先感谢您的帮助!

nbe*_*ger 1

没什么问题=。它是编码中的软换行符,quoted-printable用于符合 76 个字符的行长度,在文本解码时将其删除并连接两行。有关详细信息,请参阅有关 Quoted-printable 的维基百科页面。

我怀疑 Gmail 无法预取图像。Gmail 尝试预取图像,然后从其安全代理服务器提供该图像。有关更多信息,请参阅此官方帖子。为此,图像需要有一个可公开访问的 URL。其他客户可能也会发生类似的情况。

所以这里可能发生两件事:

  • Gmail(和其他客户端)不支持协议相关(或“无模式”)url(他们可能会尝试httphttps但我不知道他们是否这样做)。为了安全起见,我会使用完整的网址。
  • 即使尝试使用http或,该图像也无法公开访问https。您正在使用暂存环境,也许它受到 http 基本身份验证的保护?另外,.comeas TLD 也staging.mysite.come很奇怪,但我认为这只是一个拼写错误......