/mandrill_dm

A basic Mandrill delivery method for Rails.

Primary LanguageRubyMIT LicenseMIT

Mandrill DM

Build Status Gem Version security Code Climate

Mandrill DM allows you to use ActionMailer with the Mandrill API. Created by Jonathan Berglund and maintained by John Dell, and Kirill Shnurov and various contributors.

Rails Setup

First, add the gem to your Gemfile and run the bundle command to install it.

gem 'mandrill_dm'

Second, set the delivery method in config/environments/production.rb.

config.action_mailer.delivery_method = :mandrill

Third, create an initializer such as config/initializers/mandrill.rb and paste in the following code:

MandrillDm.configure do |config|
  config.api_key = ENV['MANDRILL_APIKEY']
  # config.async = false
end

NOTE: If you don't already have an environment variable for your Mandrill API key, don't forget to create one.

Rails 3: see Rails 3 (Mail 2.5) support

Available configuration options

Option Default value Description
api_key Mandrill API key.
async false Enable a background sending mode that is optimized for bulk sending.

Mandrill Templates

If you want to use this gem with mandrill templates you just have to add the template param to the mail function and set the body param to empty string ''.

We use template instead of template_name as described in mandrill documentation since template_name it's used by ActionMailer.

class MyMailer < ActionMailer::Base
  def notify_user(email)
    headers['Reply-To'] = 'your.friend@email.com'
    mail(
      to: email,
      from: 'your@email.com',
      body: '',
      template: 'your-mandrill-template-slug',
      template_content: [ # optional
        {
          name: 'header', # the name of the mc:edit editable region to inject into
          content: 'string to replace a mc:edit="header" in your template', # the content to inject
        },
        {
          name: 'content',
          content: 'string to replace a mc:edit="content" in your template'
        }
      ]
    )
  end
end

Development & Feedback

Questions or problems? Please use the issue tracker. If you would like to contribute to this project, fork this repository. Pull requests appreciated! Please ensure all specs and rubocop checks pass locally (run rake) and verify the travis build matrix passes.

This gem was inspired by the letter_opener and mandrill-delivery-handler gems. Special thanks to the folks at MailChimp and Mandrill for their Starter service and Ruby API.

Interactive Usage

$ irb -I . -r 'lib/mandrill_dm'

require 'pry'