2015-07-03 74 views
5

我使用ActionMailer發送電子郵件,並且這些電子郵件包含圖像。要在舞臺/製作中包含我正在使用的圖像<%= image_tag('email-logo.png') %>config.action_controller.asset_host已正確設置。ActionMailer在某些客戶端中破壞的電子郵件圖像

這些圖像在Outlook中顯示正常(我也在一些臨時電子郵件服務中嘗試過,它們也適用於此),但在Gmail,Apple Mail(桌面+ iOS)和郵箱應用程序中顯示爲中斷。

電子郵件的HTML版本的編碼是quoted-printable,那是對的嗎?

<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;" /> 

當我刪除了=並加載在瀏覽器的URL看起來罰款:

當我檢查Gmail中的郵件原料,如出現圖像標記。 =可以打破它嗎?圖像網址中是否缺少協議?

感謝您提前提供任何幫助!

回答

1

=沒有問題。這是一個軟換行符quoted-printable編碼用於符合76個字符的行長度,並且在解碼文本時將其刪除並將兩行加入。有關更多信息,請參閱wikipedia page on Quoted-printable

我懷疑Gmail無法預取圖像。 Gmail會嘗試預取圖片,然後從其安全代理服務器上提供圖片。有關更多信息,請參閱this official post。爲此,該圖片需要具有可公開訪問的網址。其他客戶可能會發生類似的情況。

所以兩件事情可能發生在這裏:

  • 的Gmail(和其他客戶端)不支持協議的相對(或「無模式」)的URL(他們可能會http然後https,但我不」不知道他們是否這樣做)。爲了安全起見,我會使用完整的網址。
  • 即使用httphttps進行了試用,該圖像仍無法公開訪問。你正在使用一個staging env,它可能受到了http basic auth的保護?作爲TLD staging.mysite.come.come很奇怪,但我認爲這只是一個錯字...
+0

太棒了!它最終成爲缺乏協議。也是的,'來''是一個錯字;)謝謝! –

+0

很高興知道,並很樂意爲您服務! – nberger

+0

好解釋所有這些=什麼意思。 –

相關問題