2013-03-08 79 views
7

我設置一個標準導軌梅勒與以下官方指導多視圖,就像這樣:用Rails發送多部分電子郵件:如何支持純文本格式的HTML版本?

mail(to: user.email, subject: "Welcome") do |format| 
    format.html { render layout: 'my_layout' } 
    format.text 
end 

有了明確和共同的意圖,以郵件的HTML版本爲主,才發現,作爲this article points out ,撥打format.html之後format.text使許多郵件客戶端只顯示郵件的文本版本。在我的情況下,我通過Gmail和Mozilla Thunderbird驗證(並且努力了)。

是否有一個可靠的解決方案,以優先於html版本?

+1

我不知道郵件程序有優先權。當你刪除塊時會發生什麼?如果我們不需要傳遞任何特定的細節,我們不會將郵件傳遞給郵件方法。我們只提供html和文本模板,並將它們作爲電子郵件的一部分發送。 – jvnill 2013-03-08 13:06:06

+0

鑑於我需要這個塊,因爲我需要爲html版本指定一個佈局(我只是編輯了問題來顯示),我只是做了一個快速測試,直接將佈局應用到html消息並刪除塊:它轉向如果沒有這個塊,它的工作方式就是正確的(優先於html版本)。 – Darme 2013-03-08 13:20:07

+0

收件人,而不是發件人,指定他們喜歡哪種格式。如果您不希望他們有選擇查看文本,即使他們更喜歡,也不要創建文本版本。 – tripleee 2013-03-08 15:02:42

回答

6

我迄今發現的唯一的解決辦法是改用format.htmlformat.text,使文本格式的HTML一個之前調用。這正是對面的

+1

根據MIME RFC 1341,首先放置'format.text'塊就是人們應該期待的。請參見http://www.w3.org/Protocols/上的7.2.3 rfc1341/7_2_Multipart.html 「一般來說,組成多部分/替代實體的用戶代理應該按照優先級遞增的順序放置正文部分,也就是說,首選格式是最後一個。」 – 2013-12-16 19:45:57

相關問題