aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer/lib
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@plataformatec.com.br>2012-09-06 03:36:19 -0700
committerJosé Valim <jose.valim@plataformatec.com.br>2012-09-06 03:36:19 -0700
commit3c27dcc639a9380ff86c76ed6ed089a072d64df0 (patch)
tree3c958bf72c6808ed1fcba08f7760c01dfcb035bc /actionmailer/lib
parent4fa2f10494260c0937ffe066aace09747e57d7c7 (diff)
parent8fc8763fde2cc685ed63fcf640cfae556252809b (diff)
downloadrails-3c27dcc639a9380ff86c76ed6ed089a072d64df0.tar.gz
rails-3c27dcc639a9380ff86c76ed6ed089a072d64df0.tar.bz2
rails-3c27dcc639a9380ff86c76ed6ed089a072d64df0.zip
Merge pull request #7397 from asanghi/master
Allow delivery method options to be set per mail instance
Diffstat (limited to 'actionmailer/lib')
-rw-r--r--actionmailer/lib/action_mailer/base.rb2
-rw-r--r--actionmailer/lib/action_mailer/delivery_methods.rb4
2 files changed, 3 insertions, 3 deletions
diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb
index f5c325179f..4a099553c0 100644
--- a/actionmailer/lib/action_mailer/base.rb
+++ b/actionmailer/lib/action_mailer/base.rb
@@ -683,7 +683,7 @@ module ActionMailer #:nodoc:
m.charset = charset = headers[:charset]
# Set configure delivery behavior
- wrap_delivery_behavior!(headers.delete(:delivery_method))
+ wrap_delivery_behavior!(headers.delete(:delivery_method),headers.delete(:delivery_method_options))
# Assign all headers except parts_order, content_type and body
assignable = headers.except(:parts_order, :content_type, :body, :template_name, :template_path)
diff --git a/actionmailer/lib/action_mailer/delivery_methods.rb b/actionmailer/lib/action_mailer/delivery_methods.rb
index 3b38dbccc7..b795d4f80a 100644
--- a/actionmailer/lib/action_mailer/delivery_methods.rb
+++ b/actionmailer/lib/action_mailer/delivery_methods.rb
@@ -57,7 +57,7 @@ module ActionMailer
self.delivery_methods = delivery_methods.merge(symbol.to_sym => klass).freeze
end
- def wrap_delivery_behavior(mail, method=nil) #:nodoc:
+ def wrap_delivery_behavior(mail, method=nil, options=nil) #:nodoc:
method ||= self.delivery_method
mail.delivery_handler = self
@@ -66,7 +66,7 @@ module ActionMailer
raise "Delivery method cannot be nil"
when Symbol
if klass = delivery_methods[method]
- mail.delivery_method(klass, send(:"#{method}_settings"))
+ mail.delivery_method(klass,(send(:"#{method}_settings") || {}).merge!(options || {}))
else
raise "Invalid delivery method #{method.inspect}"
end