2012-10-30 8 views
6

ActionMailerを使用してテストメールを送信しています。テンプレートがレンダリングされ、メールが正常に配信されています。唯一の問題は、mimepartと他のヘッダーデータがGoogleによってメッセージ本文に表示されることです。ここで Railsメーラmimepartがメッセージ本文のテキストとして表示される

は...

def testing 

    mail(:to => "[email protected]",:subject => "html mailer", :content_type => "text/html") do |format| 
      format.html { render 'testing' } 
      format.text { render :text => "bing" } 
    end 
end 

コードのメールで、ここでは、電子メールを受信します。

----==_mimepart_508fd46252b8c_8023fe595835ad0479a6 Date: Tue, 30 Oct 2012 18:51:38 +0530  
Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit 
Content-ID: <[email protected].local.mail> 
bing ----==_mimepart_508fd46252b8c_8023fe595835ad0479a6 Date: Tue, 30 Oct 2012 18:51:38 
+0530 Mime-Version: 1.0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 
7bit Content-ID: <[email protected]poorv-Parijats-MacBook-Pro- 
2.local.mail> Hi bing 
column 1 column 2 
----==_mimepart_508fd46252b8c_8023fe595835ad0479a6-- 

コンソールの出力 -

Loading development environment (Rails 3.2.2) 
1.9.3-p125 :001 > RankMailer.testing.deliver 
I, [2012-10-30T18:51:38.331238 #2050] INFO -- : Rendered rank_mailer/testing.html.erb   
(1.8ms) 
I, [2012-10-30T18:51:38.333117 #2050] INFO -- : Rendered text template (0.0ms) 
I, [2012-10-30T18:51:45.824962 #2050] INFO -- : 
Sent mail to [email protected] (7484ms) 
D, [2012-10-30T18:51:45.825125 #2050] DEBUG -- : Date: Tue, 30 Oct 2012 18:51:38 +0530 
From: [email protected] 
To: [email protected] 
     Message-ID: <[email protected].local.mail> 
    Subject: html mailer 
    Mime-Version: 1.0 
    Content-Type: text/html; 
    charset=UTF-8 
    Content-Transfer-Encoding: 7bit 



    ----==_mimepart_508fd46252b8c_8023fe595835ad0479a6 
    Date: Tue, 30 Oct 2012 18:51:38 +0530 
    Mime-Version: 1.0 
    Content-Type: text/plain; 
    charset=UTF-8 
    Content-Transfer-Encoding: 7bit 
    Content-ID: <[email protected].local.mail> 

    bing 

    ----==_mimepart_508fd46252b8c_8023fe595835ad0479a6 
    Date: Tue, 30 Oct 2012 18:51:38 +0530 
    Mime-Version: 1.0 
    Content-Type: text/html; 
    charset=UTF-8 
    Content-Transfer-Encoding: 7bit 
    Content-ID: <[email protected].local.mail> 

    Hi bing 

    <table style="border:1px solid red"> 
     <tr> 
      <td>column 1</td> 
      <td>column 2</td> 
     </tr> 
    </table> 

    ----==_mimepart_508fd46252b8c_8023fe595835ad0479a6-- 

    => #<Mail::Message:70255316899740, Multipart: false, Headers: <Date: Tue, 30 Oct 2012 18:51:38 +0530>, <From: [email protected]>, <To: [email protected]>, <Message-ID: <[email protected].local.mail>>, <Subject: html mailer>, <Mime-Version: 1.0>, <Content-Type: text/html>, <Content-Transfer-Encoding: 7bit>> 

答えて

6

メール法に:content_type => "text/html"を指定しないでください。フォーマットブロックを使用しているので、レールは自動的にMIMEタイプを取得します。

詳細:

(すなわち、電子メールの両方のHTMLとテキスト形式。)マルチパートメールを送信するために、これを試してみてください。フォーマットの順序に注意してください。

mail(:to => "[email protected]", :subject => "html mailer") do |format| 
    format.text { render :text => "bing" } 
    format.html { render 'testing' } 
end 
+0

問題は 'content_type'でした。私は 'format.text'を削除し、':content_type'をそのまま残しました。 HTML電子メールがエラーなしで送信されています。私はメールでフォールバックテキストも送っておけば、 ':content_type'を使うべきだということはまだ分かっていません。 –

+0

複数の形式を使用できます。その後、メーラーはすべてのユーザーフォーマットでマルチパートメールを作成します。ユーザーのクライアントまたはWebインターフェイスは自動的に適切な形式を選択します。より多くのフォーマットを使用するには、 ":content_type"パラメータを削除してください。私はちょうど返信に例を追加しました。詳細と注文情報については、この[rails guide](http://guides.rubyonrails.org/action_mailer_basics.html#sending-multipart-emails)をご覧ください。 – rdamborsky

関連する問題