Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

How To: Use custom mailer

Pranav edited this page · 16 revisions
Clone this wiki locally

To use a custom mailer, create a class that extends Devise::Mailer, like this:

class MyMailer < Devise::Mailer   
  helper :application # gives access to all helpers defined within `application_helper`.
  include Devise::Controllers::UrlHelpers # Optional. eg. `confirmation_url`
  default template_path: 'devise/mailer' # to make sure that your mailer uses the devise views
end

Then, in your config/initializers/devise.rb, set config.mailer to "MyMailer".

You may now use your MyMailer in the same way as any other mailer. In case you want to override specific mails to add extra headers, you can do so by simply overriding the method and calling super after (triggering Devise's default behavior). For instance, we can add a new header for the confirmation_instructions e-mail as follow:

def confirmation_instructions(record, token, opts={})
  headers["Custom-header"] = "Bar"
  super
end

You can also override any of the basic headers (from, reply_to, etc) by manually setting the options hash:

def confirmation_instructions(record, token, opts={})
  headers["Custom-header"] = "Bar"
  opts[:from] = 'my_custom_from@domain.com'
  opts[:reply_to] = 'my_custom_from@domain.com'
  super
end
Something went wrong with that request. Please try again.