From de8dcc5b26ab0c60c010058244e9341074328257 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 24 Oct 2009 11:57:01 +0000 Subject: [PATCH] Sets proper content type for plain text mails (#3970). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2961 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/mailer.rb | 11 ++++++++--- test/unit/mailer_test.rb | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/models/mailer.rb b/app/models/mailer.rb index 1a2e35e7d..3d5231d36 100644 --- a/app/models/mailer.rb +++ b/app/models/mailer.rb @@ -352,9 +352,14 @@ class Mailer < ActionMailer::Base # https://rails.lighthouseapp.com/projects/8994/tickets/1799-actionmailer-doesnt-set-template_format-when-rendering-layouts def render_multipart(method_name, body) - content_type "multipart/alternative" - part :content_type => "text/plain", :body => render(:file => "#{method_name}.text.plain.rhtml", :body => body, :layout => 'mailer.text.plain.erb') - part :content_type => "text/html", :body => render_message("#{method_name}.text.html.rhtml", body) unless Setting.plain_text_mail? + if Setting.plain_text_mail? + content_type "text/plain" + body render(:file => "#{method_name}.text.plain.rhtml", :body => body, :layout => 'mailer.text.plain.erb') + else + content_type "multipart/alternative" + part :content_type => "text/plain", :body => render(:file => "#{method_name}.text.plain.rhtml", :body => body, :layout => 'mailer.text.plain.erb') + part :content_type => "text/html", :body => render_message("#{method_name}.text.html.rhtml", body) + end end # Makes partial rendering work with Rails 1.2 (retro-compatibility) diff --git a/test/unit/mailer_test.rb b/test/unit/mailer_test.rb index d58d55900..cc6e6cf3e 100644 --- a/test/unit/mailer_test.rb +++ b/test/unit/mailer_test.rb @@ -103,7 +103,8 @@ class MailerTest < ActiveSupport::TestCase journal = Journal.find(2) Mailer.deliver_issue_edit(journal) mail = ActionMailer::Base.deliveries.last - assert_equal 1, mail.parts.size + assert_equal "text/plain", mail.content_type + assert_equal 0, mail.parts.size assert !mail.encoded.include?('href') end