Usage:
class ApplicationMailer < ActionMailer::Base
def post_notification(recipients, post)
@recipients = recipients
@from = post.author.email_address_with_name
@headers["bcc"] = SYSTEM_ADMINISTRATOR_EMAIL
@headers["reply-to"] = "notifications@example.com"
@subject = "[#{post.account.name} #{post.title}]"
@body["post"] = post
end
def comment_notification(recipient, comment)
@recipients = recipient.email_address_with_name
@subject = "[#{comment.post.project.client.firm.account.name}]" +
" Re: #{comment.post.title}"
@body["comment"] = comment
@from = comment.author.email_address_with_name
@sent_on = comment.posted_on
end
end
# After this post_notification will look for "templates/application_mailer/post_notification.rhtml"
ApplicationMailer.template_root = "templates"
ApplicationMailer.create_comment_notification(david, hello_world) # => a tmail object
ApplicationMailer.deliver_comment_notification(david, hello_world) # sends the email
Configuration options
These options are specified on the class level, like ActionMailer::Base.template_root = "/my/templates"
- template_root - template root determines the base from which template references will be made.
- logger - the logger is used for generating information on the mailing run if available. Can be set to nil for no logging. Compatible with both Ruby’s own Logger and Log4r loggers.
- server_settings - Allows detailed configuration of the server:
- :address Allows you to use a remote mail server. Just change it away from it’s default "localhost" setting.
- :port On the off change that your mail server doesn’t run on port 25, you can change it.
- :domain If you need to specify a HELO domain, you can do it here.
- :user_name If your mail server requires authentication, set the username and password in these two settings.
- :password If your mail server requires authentication, set the username and password in these two settings.
- :authentication If your mail server requires authentication, you need to specify the authentication type here. This is a symbol and one of :plain, :login, :cram_md5
- raise_delivery_errors - whether or not errors should be raised if the email fails to be delivered.
- delivery_method - Defines a delivery method. Possible values are :smtp (default), :sendmail, and :test. Sendmail is assumed to be present at "/usr/sbin/sendmail".
- perform_deliveries - Determines whether deliver_* methods are actually carried out. By default they are, but this can be turned off to help functional testing.
- deliveries - Keeps an array of all the emails sent out through the Action Mailer with delivery_method :test. Most useful for unit and functional testing.
- default_charset - The default charset used for the body and to
encode the subject. Defaults to UTF-8. You can also
pick a different charset from inside a method with <tt>@encoding</tt>.
- encode_subject - Whether or not to encode the subject with the active charset. Defaults to true.
Methods
Attributes
| [RW] | bcc | |
| [RW] | body | |
| [RW] | cc | |
| [RW] | charset | |
| [RW] | encode_subject | |
| [RW] | from | |
| [RW] | headers | |
| [RW] | recipients | |
| [RW] | sent_on | |
| [RW] | subject |
Public Class methods
[ show source ]
# File vendor/rails/actionmailer/lib/action_mailer/base.rb, line 99
99: def initialize
100: @bcc = @cc = @from = @recipients = @sent_on = @subject = @body = nil
101: @charset = @@default_charset.dup
102: @encode_subject = @@encode_subject
103: @headers = {}
104: end
[ show source ]
# File vendor/rails/actionmailer/lib/action_mailer/base.rb, line 153
153: def receive(raw_email)
154: logger.info "Received mail:\n #{raw_email}" unless logger.nil?
155: new.receive(TMail::Mail.parse(raw_email))
156: end