Usage:
class ApplicationMailer < ActionMailer::Base
# Set up properties
# (Properties can also be specified via accessor methods
# i.e. self.subject = "foo") and instance variables (@subject = "foo").
def signup_notification(recipient)
recipients recipient.email_address_with_name
subject "New account information"
body { "account" => recipient }
from "system@example.com"
end
# explicitly specify multipart messages
def signup_notification(recipient)
recipients recipient.email_address_with_name
subject "New account information"
from "system@example.com"
part :content_type => "text/html",
:body => render_message("signup-as-html", :account => recipient)
part "text/plain" do |p|
p.body = render_message("signup-as-plain", :account => recipient)
p.transfer_encoding = "base64"
end
end
# attachments
def signup_notification(recipient)
recipients recipient.email_address_with_name
subject "New account information"
from "system@example.com"
attachment :content_type => "image/jpeg",
:body => File.read("an-image.jpg")
attachment "application/pdf" do |a|
a.body = generate_your_pdf_here()
end
end
# implicitly multipart messages
def signup_notification(recipient)
recipients recipient.email_address_with_name
subject "New account information"
from "system@example.com"
body(:account => "recipient")
# ActionMailer will automatically detect and use multipart templates,
# where each template is named after the name of the action, followed
# by the content type. Each such detected template will be added as
# a separate part to the message.
#
# for example, if the following templates existed:
# * signup_notification.text.plain.rhtml
# * signup_notification.text.html.rhtml
# * signup_notification.text.xml.rxml
# * signup_notification.text.x-yaml.rhtml
#
# Each would be rendered and added as a separate part to the message,
# with the corresponding content type. The same body hash is passed to
# each template.
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 @charset.
- default_content_type - The default content type used for main part of the message. Defaults to "text/plain". You can also pick a different content type from inside a method with @content_type.
- default_implicit_parts_order - When a message is built implicitly (i.e. multiple parts are assemble from templates which specify the content type in their filenames) this variable controls how the parts are ordered. Defaults to ["text/html", "text/enriched", "text/plain"]. Items that appear first in the array have higher priority in the mail client and appear last in the mime encoded message. You can also pick a different order from inside a method with @implicit_parts_order.
Included Modules
- ActionMailer::AdvAttrAccessor
- ActionMailer::PartContainer
Attributes
| [R] |