Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Send emails asynchronously using delayed_job

tag: v1.0.2

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .document
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README
Octocat-spinner-32 Rakefile
Octocat-spinner-32 VERSION
Octocat-spinner-32 delayed_mailer.gemspec

This plugin provides a module which - when included into an ActionMailer subclass - pushes all emails that would 
normally be delivered synchronously into a queue for asynchronous processing. For queuing it relies on the delayed_job 
plugin ( ).

How it works

The plugin provides a module Delayed::Mailer. To make a mailer use a queue simply include it into the class like this:

class MyMailer < ActionMailer::Base
  include Delayed::Mailer

From now on all MyMailer.deliver_whatever_email calls create an entry delayed_job queue.
If you still want to deliver mail sycnhronously add a bang to the method call: MyMailer.deliver_whatever_email!

To set asynchronous mailing as project default, you need to create an initializer file as follows:

# config/initializers/delayed_mailer.rb
class ActionMailer::Base
  include Delayed::Mailer


script/plugin install git://


Delayed e-mails is an awesome thing in production environments, but for e-mail specs/tests in testing environments it can be a mess causing specs/tests to fail because the e-mail haven't been sent directly. Therefore you can configure what environments that should be excluded like so:

# config/initializers/delayed_mailer.rb

Delayed::Mailer.excluded_environments = [:test, :cucumber]  # etc.



This plugin is a delayed job plugin based on langalex workling_mailer
plugin that can be found at


Copyright (c) 2009 Anderson Dias, released under the MIT license

Email: andersondaraujo[at]
Twitter: extendsmymind
Something went wrong with that request. Please try again.