eac / action_mailer-enqueable

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ActionMailer::Enqueable

Drop in support for using queues with existing delivery methods. Works with mailers that accept ActiveRecord, and simple JSON-compatible objects as arguments.

Installation

Add this line to your application's Gemfile:

gem 'action_mailer-enqueable'

Usage

class EnqueableMailer < ActionMailer::Base
  extend ActionMailer::Enqueable

  self.queue = MailRenderingJob

  def welcome(user)
    recipients   'You'
    from         'Me'

    body "Email: Hello, #{user}"
  end

end

class MailRenderingJob

  def self.enqueue(deferred)
    Resque.enqueue(deferred.encoded)
  end
  
  def self.work(params)
    deferred = ActionMailer::Enqueable::Deferred.from_hash(params)
    deferred.mailer.deliver!
  end

end

About

License:MIT License


Languages

Language:Ruby 100.0%