2012-04-24 5 views
3

使用して、レールActionMailerでhtml電子メールを送信するにはどうすればよいですか?

2.3.14私のメールERB: data.html.erb:私は電子メールを受信することができますが、私がそうするとき、それはプレーンテキストとして表示さ

<% @data.each do |error| %> 
    <table> 
     <% error.each_pair do |k, v| %> 
      <tr> 
       <td> 
        <%= k %> 
       </td> 
       <td> 
        <%= ap v %> 
       </td> 
      </tr> 
     <% end %> 
    </table> 
    <br /> 
<% end %> 

- ではなく、レンダリングHTML。

アクションメーラーの設定:

config.action_mailer.raise_delivery_errors = true 

# Send emails during development 
config.action_mailer.perform_deliveries = true 
ActionMailer::Base.delivery_method = :sendmail 

UPDATEは:私の配信方法でコンテンツタイプを指定する必要がありました:

def data(data, sent_at = Time.now) 
    Time.zone = 'Eastern Time (US & Canada)' 

    content_type 'text/html' 
    subject  "[#{RAILS_ENV}] An error has occurred - #{Time.now.to_s("%B %d, %Y")}" 
    recipients "[email protected]" 
    from  AppConfig['from_email'] 
    sent_on  sent_at 
    @body = {:data => data} 
    end 
+1

受信トレイにメールの送信元が表示されている場合、Content-Typeヘッダーはどのように表示されますか? – d11wtq

+0

text/plain; charset = utf-8。どうすればhtmlにすることができますか? – NullVoxPopuli

+0

「うまくいく」はずです。あなたはディレクトリにdata.text.erbテンプレートを持っていないのですか?あなたは、メーラー内で手作業でレンダリングメソッドを呼び出していますか? – d11wtq

答えて

0

使用<% =未処理のk%>または<% = k.html_safe %>

1

ある状況では、レールが何らかの形でテキストテンプレートをキャッシュしているようです。

私だけ

単一のビューで新しいメーラーを生成
  1. 、テキストビュー
  2. は、メーラーをテストし、HTMLにテキストメールを改名テキストメール
  3. を送った(foo.text.haml - > foo.html.haml)
  4. は、メーラーを再テスト...とテキストメール(ブーイング)新しい名前(bar.html.haml)
  5. とテキスト版と一緒にHTMLのバージョンを作成しまし
  6. を持って! 10
  7. サーバーを再起動しました
  8. Retested(送信バー)今回はHTMLメールが届きました。
  9. オリジナルのhtml電子メール(foo)を再テストしました。 HTMLメールを入手しました

cray

関連する問題