2013-03-08 7 views
7

Iセットアップ標準レールは、このように、公式ガイド以下のマルチビューとメーラー:複数のメールをRailsで送信する:HTML版をプレーンテキストのものよりも優先させるには?

メッセージのHTMLバージョンを優先する明確な共通意図して
mail(to: user.email, subject: "Welcome") do |format| 
    format.html { render layout: 'my_layout' } 
    format.text 
end 

、唯一this article points outとして、それを見つけるために、 format.textの前にformat.htmlを呼び出すと、多くのメールクライアントがメッセージのテキストバージョンのみを表示します。私の場合は、GmailとMozilla Thunderbirdの両方で確認しました(苦労しました)。

htmlバージョンを優先する信頼できる解決法はありますか?私がこれまでに見つかった

+1

メーラには優先順位があることはわかりませんでした。ブロックを削除するとどうなりますか?特定の詳細を渡す必要がなければ、ブロックをメールメソッドに渡すことはありません。 htmlテンプレートとテキストテンプレートを提供するだけで、メールの一部として送信されます。 – jvnill

+0

html版のレイアウトを指定する必要があるのでブロックが必要な場合(私はちょうどそれを示す質問を編集しました)、htmlメッセージに直接レイアウトを適用してブロックを削除するという簡単なテストを行いました。ブロックなしでは、正しい方法(htmlバージョンより優先)が機能します。 – Darme

+0

送信者ではなく、受信者が好みの形式を指定します。それが好きでもテキストを表示するオプションがないようにするには、テキストバージョンを作成しないでください。 – tripleee

答えて

6

唯一の解決策は、テキスト形式前にhtmlの1と呼ばれるようにformat.textformat.htmlを切り替えることです。正確にはと反対のです。

+1

'format.text'ブロックを最初に配置するのは、MIME RFC 1341に従ったものです。http://www.w3.org/Protocols/の7.2.3を参照してください。 rfc1341/7_2_Multipart.html "一般に、複数パート/代替エンティティを構成するユーザーエージェントは、優先順位の高い順に、つまり優先形式を使用して本文部分を配置する必要があります。 –

関連する問題