提交 0d7daf24 编写于 作者: Z Zachary Scott

Document ActionMailer::Base::default, ::mailer_name, and #mailer_name

上级 ff34afc2
...@@ -398,7 +398,7 @@ def register_interceptors(*interceptors) ...@@ -398,7 +398,7 @@ def register_interceptors(*interceptors)
# Register an Observer which will be notified when mail is delivered. # Register an Observer which will be notified when mail is delivered.
# Either a class or a string can be passed in as the Observer. If a string is passed in # Either a class or a string can be passed in as the Observer. If a string is passed in
# it will be <tt>constantize</tt>d. # it will be +constantize+d.
def register_observer(observer) def register_observer(observer)
delivery_observer = (observer.is_a?(String) ? observer.constantize : observer) delivery_observer = (observer.is_a?(String) ? observer.constantize : observer)
Mail.register_observer(delivery_observer) Mail.register_observer(delivery_observer)
...@@ -417,9 +417,15 @@ def register_interceptor(interceptor) ...@@ -417,9 +417,15 @@ def register_interceptor(interceptor)
def mailer_name def mailer_name
@mailer_name ||= anonymous? ? "anonymous" : name.underscore @mailer_name ||= anonymous? ? "anonymous" : name.underscore
end end
# Allows to set the name of current mailer.
attr_writer :mailer_name attr_writer :mailer_name
alias :controller_path :mailer_name alias :controller_path :mailer_name
# Sets the defaults through app configuration:
#
# config.action_mailer.default { from: "no-reply@example.org" }
#
# Aliased by ::default_options=
def default(value = nil) def default(value = nil)
self.default_params = default_params.merge(value).freeze if value self.default_params = default_params.merge(value).freeze if value
default_params default_params
...@@ -431,13 +437,15 @@ def default(value = nil) ...@@ -431,13 +437,15 @@ def default(value = nil)
# Receives a raw email, parses it into an email object, decodes it, # Receives a raw email, parses it into an email object, decodes it,
# instantiates a new mailer, and passes the email object to the mailer # instantiates a new mailer, and passes the email object to the mailer
# object's +receive+ method. If you want your mailer to be able to # object's +receive+ method.
# process incoming messages, you'll need to implement a +receive+ #
# method that accepts the raw email string as a parameter: # If you want your mailer to be able to process incoming messages, you'll
# need to implement a +receive+ method that accepts the raw email string
# as a parameter:
# #
# class MyMailer < ActionMailer::Base # class MyMailer < ActionMailer::Base
# def receive(mail) # def receive(mail)
# ... # # ...
# end # end
# end # end
def receive(raw_mail) def receive(raw_mail)
...@@ -448,10 +456,12 @@ def receive(raw_mail) ...@@ -448,10 +456,12 @@ def receive(raw_mail)
end end
end end
# Wraps an email delivery inside of Active Support Notifications instrumentation. This # Wraps an email delivery inside of ActiveSupport::Notifications instrumentation.
# method is actually called by the <tt>Mail::Message</tt> object itself through a callback #
# when you call <tt>:deliver</tt> on the Mail::Message, calling +deliver_mail+ directly # This method is actually called by the Mail::Message object itself
# and passing a Mail::Message will do nothing except tell the logger you sent the email. # through a callback when you call +:deliver+ on the Mail::Message,
# calling +deliver_mail+ directly and passing a Mail::Message will do
# nothing except tell the logger you sent the email.
def deliver_mail(mail) #:nodoc: def deliver_mail(mail) #:nodoc:
ActiveSupport::Notifications.instrument("deliver.action_mailer") do |payload| ActiveSupport::Notifications.instrument("deliver.action_mailer") do |payload|
set_payload_for_mail(payload, mail) set_payload_for_mail(payload, mail)
...@@ -477,7 +487,7 @@ def set_payload_for_mail(payload, mail) #:nodoc: ...@@ -477,7 +487,7 @@ def set_payload_for_mail(payload, mail) #:nodoc:
payload[:mail] = mail.encoded payload[:mail] = mail.encoded
end end
def method_missing(method_name, *args) def method_missing(method_name, *args) # :nodoc:
if respond_to?(method_name) if respond_to?(method_name)
new(method_name, *args).message new(method_name, *args).message
else else
...@@ -514,17 +524,18 @@ def method_missing(*args) ...@@ -514,17 +524,18 @@ def method_missing(*args)
end end
end end
# Returns the name of the mailer object.
def mailer_name def mailer_name
self.class.mailer_name self.class.mailer_name
end end
# Allows you to pass random and unusual headers to the new <tt>Mail::Message</tt> object # Allows you to pass random and unusual headers to the new Mail::Message
# which will add them to itself. # object which will add them to itself.
# #
# headers['X-Special-Domain-Specific-Header'] = "SecretValue" # headers['X-Special-Domain-Specific-Header'] = "SecretValue"
# #
# You can also pass a hash into headers of header field names and values, which # You can also pass a hash into headers of header field names and values,
# will then be set on the Mail::Message object: # which will then be set on the Mail::Message object:
# #
# headers 'X-Special-Domain-Specific-Header' => "SecretValue", # headers 'X-Special-Domain-Specific-Header' => "SecretValue",
# 'In-Reply-To' => incoming.message_id # 'In-Reply-To' => incoming.message_id
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册