我正在使用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;" />
当我删除=
并在浏览器中加载网址时,它显示正常。 =
会破坏它吗?可能是图片网址中缺少协议吗?
提前感谢您的帮助!
答案 0 :(得分:1)
=
没有任何问题。 quoted-printable
编码中的软换行符用于符合76个字符行长度,并且在解码文本时将其删除并连接两行。有关详细信息,请参阅wikipedia page on Quoted-printable。
我怀疑Gmail无法预取图片。 Gmail会尝试预取图像,然后通过其安全代理服务器提供图像。有关详细信息,请参阅this official post。为此,图像需要具有可公开访问的URL。与其他客户可能会发生类似的事情。
所以这里可能会发生两件事:
http
然后https
,但我不知道他们是否这样做了) 。为了安全起见,我会使用完整的网址。http
或https
,图片也无法公开访问。你正在使用staging env,也许它受到http basic auth的保护? .come
中的staging.mysite.come
作为TLD也很奇怪,但我认为这只是一个错字......