2012-10-30 8 views
6

Tôi đang gửi thư thử nghiệm bằng cách sử dụng ActionMailer. Mẫu đang được hiển thị và thư đang được phân phối tốt. Vấn đề duy nhất là mimepart và dữ liệu tiêu đề khác được hiển thị bởi Google trong nội dung thư.Rails mailer mimepart hiển thị dưới dạng văn bản trong nội dung thư

Dưới đây là đoạn code mà mail ..

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 

và Dưới đây là những email nhận được.

----==_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] 
2.local.mail> Hi bing 
column 1 column 2 
----==_mimepart_508fd46252b8c_8023fe595835ad0479a6-- 

Output của giao diện điều khiển -

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>> 

Trả lời

6

Không chỉ định :content_type => "text/html" trong phương pháp mail của bạn. Vì bạn đang sử dụng khối định dạng, đường ray sẽ tự động nhận loại mime.

THÊM CHI TIẾT:

Hãy thử điều này để gửi email nhiều phần dữ liệu (tức là cả html và các định dạng văn bản của thư điện tử.). Lưu ý thứ tự của các định dạng.

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

Vấn đề là ': content_type'. Tôi đã xóa 'format.text' và để lại': content_type'. Email HTML đang được gửi mà không có bất kỳ lỗi nào. Mặc dù tôi chưa tìm ra rằng những gì ': content_type' nên được sử dụng nếu tôi đã gửi văn bản dự phòng cũng như trong email. –

+0

Bạn có thể sử dụng nhiều định dạng. Sau đó, Mailer sẽ tạo email nhiều phần, với tất cả các định dạng người dùng. Giao diện web hoặc ứng dụng khách của người dùng sẽ tự động chọn định dạng thích hợp. Để sử dụng nhiều định dạng hơn, hãy xóa tham số ": content_type". Tôi vừa thêm ví dụ vào trả lời. Hãy xem [hướng dẫn đường ray] này (http://guides.rubyonrails.org/action_mailer_basics.html#sending-multipart-emails) để biết thêm chi tiết và thông tin đặt hàng. – rdamborsky