diff options
-rw-r--r-- | actionmailer/lib/action_mailer/part.rb | 7 | ||||
-rwxr-xr-x | actionmailer/test/mail_service_test.rb | 23 |
2 files changed, 25 insertions, 5 deletions
diff --git a/actionmailer/lib/action_mailer/part.rb b/actionmailer/lib/action_mailer/part.rb index 31f5b441e3..de1b1689f7 100644 --- a/actionmailer/lib/action_mailer/part.rb +++ b/actionmailer/lib/action_mailer/part.rb @@ -84,11 +84,8 @@ module ActionMailer end else if String === body - part = TMail::Mail.new - part.body = body - part.set_content_type(real_content_type, nil, ctype_attrs) - part.set_content_disposition "inline" - m.parts << part + @parts.unshift Part.new(:charset => charset, :body => @body, :content_type => 'text/plain') + @body = nil end @parts.each do |p| diff --git a/actionmailer/test/mail_service_test.rb b/actionmailer/test/mail_service_test.rb index 09132ed7e6..ad2e8afd2b 100755 --- a/actionmailer/test/mail_service_test.rb +++ b/actionmailer/test/mail_service_test.rb @@ -210,6 +210,16 @@ class TestMailer < ActionMailer::Base attachment :content_type => "application/octet-stream",:filename => "test.txt", :body => "test abcdefghijklmnopqstuvwxyz" end + def nested_multipart_with_body(recipient) + recipients recipient + subject "nested multipart with body" + from "test@example.com" + content_type "multipart/mixed" + part :content_type => "multipart/alternative", :content_disposition => "inline", :body => "Nothing to see here." do |p| + p.part :content_type => "text/html", :body => "<b>test</b> HTML<br/>" + end + end + def attachment_with_custom_header(recipient) recipients recipient subject "custom header in attachment" @@ -310,6 +320,19 @@ class ActionMailerTest < Test::Unit::TestCase assert_equal "application/octet-stream", created.parts[1].content_type end + def test_nested_parts_with_body + created = nil + assert_nothing_raised { created = TestMailer.create_nested_multipart_with_body(@recipient)} + assert_equal 1,created.parts.size + assert_equal 2,created.parts.first.parts.size + + assert_equal "multipart/mixed", created.content_type + assert_equal "multipart/alternative", created.parts.first.content_type + assert_equal "Nothing to see here.", created.parts.first.parts.first.body + assert_equal "text/plain", created.parts.first.parts.first.content_type + assert_equal "text/html", created.parts.first.parts[1].content_type + end + def test_attachment_with_custom_header created = nil assert_nothing_raised { created = TestMailer.create_attachment_with_custom_header(@recipient)} |