aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionmailer/lib/action_mailer/base.rb10
-rw-r--r--actionmailer/test/mail_service_test.rb15
2 files changed, 22 insertions, 3 deletions
diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb
index 49551dca51..3855ce91c8 100644
--- a/actionmailer/lib/action_mailer/base.rb
+++ b/actionmailer/lib/action_mailer/base.rb
@@ -463,9 +463,9 @@ module ActionMailer #:nodoc:
# Create e-mail parts
create_parts
- # If this is a multipart e-mail add the mime_version if it is not
- # already set.
- @mime_version ||= "1.0" if !@parts.empty?
+ # Set the subject if not set yet
+ @subject ||= I18n.t(method_name, :scope => [:actionmailer, :subjects, mailer_name],
+ :default => method_name.humanize)
# build the mail object itself
@mail = create_mail
@@ -539,6 +539,10 @@ module ActionMailer #:nodoc:
@content_type = "multipart/alternative" if @content_type !~ /^multipart/
@parts = sort_parts(@parts, @implicit_parts_order)
end
+
+ # If this is a multipart e-mail add the mime_version if it is not
+ # already set.
+ @mime_version ||= "1.0" if !@parts.empty?
end
end
diff --git a/actionmailer/test/mail_service_test.rb b/actionmailer/test/mail_service_test.rb
index 96c00a4098..f9365ea90c 100644
--- a/actionmailer/test/mail_service_test.rb
+++ b/actionmailer/test/mail_service_test.rb
@@ -296,6 +296,12 @@ class TestMailer < ActionMailer::Base
body :body => "foo", :bar => "baz"
end
+ def subject_with_i18n(recipient)
+ recipients recipient
+ from "system@loudthinking.com"
+ render :text => "testing"
+ end
+
class << self
attr_accessor :received_body
end
@@ -392,6 +398,15 @@ class ActionMailerTest < Test::Unit::TestCase
assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded
end
+ def test_subject_with_i18n
+ assert_nothing_raised { TestMailer.deliver_subject_with_i18n(@recipient) }
+ assert_equal "Subject with i18n", ActionMailer::Base.deliveries.first.subject
+
+ I18n.backend.store_translations('en', :actionmailer => {:subjects => {:test_mailer => {:subject_with_i18n => "New Subject!"}}})
+ assert_nothing_raised { TestMailer.deliver_subject_with_i18n(@recipient) }
+ assert_equal "New Subject!", ActionMailer::Base.deliveries.last.subject
+ end
+
def test_custom_template
expected = new_mail
expected.to = @recipient