Send Devise's emails in background. Supports Resque, Sidekiq, Delayed::Job and QueueClassic.
Clone or download
baschtl Final adaptions for 1.0.0 (#104)
* Updates readme and does some cleanup for 1.0.0 release.

* Fixes travis build.
Latest commit fcd91ed Sep 20, 2017

Devise Async

Tag Build Status Code Climate

Devise Async provides an easy way to configure Devise to send its emails asynchronously using ActiveJob.


Add this line to your application's Gemfile:

gem 'devise-async'

And then execute:

$ bundle

Or install it yourself as:

$ gem install devise-async


  1. Setup ActiveJob,
  2. Add :async to the devise call in your model:
class User < ActiveRecord::Base
  devise :database_authenticatable, :async, :confirmable # etc ...


Enabling via config

The gem can be enabled/disabled easily via config, for example based on environment.

# config/initializers/devise_async.rb
Devise::Async.enabled = true # | false

Setup via block

To avoid repeating Devise::Async in the initializer file you can use the block syntax similar to what Devise offers.

# config/initializers/devise_async.rb
Devise::Async.setup do |config|
  config.enabled = true

Custom mailer class

Customize Devise.mailer at will and devise-async will honor it.

Older versions of Rails and devise

If you want to use this gem with Rails < 5 and/or devise < 4 check out older releases, please.


RSpec is used for testing. The following should be enough for running the test:

$ bundle exec rspec


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request


Released under the MIT License. See the LICENSE file for further details.