This gem hooks in Rails ActionMailer::Base and change the behavior of deliver_* methods to allways delegate the sending taks to DelayedJob. With this in mind all your emails will be sent asynchronous instead of sycnhronous.
gem install delayed_mailer
Load the gem in the appropriate environments using Rails' 2.1+ gem support. For example, I'm loading this in config/environments/production.rb and config/environments/staging.rb:
How it works
When the gem is loaded it change the ActionMailer::Base method_missing to use send_later method of DelayedJob instead of normal deliver_*. If you want synchronous send you just call deliver_*!. The deliver with bang (!) will send the message using default ActionMailer method.
specs.should pass if RUBY_VERSION =~ /^1.(8.6|8.7|9.1)$/ && Rails.version =~ /^(1.2.6|2.\d.\d)$/
Anderson Dias - github.com/andersondias
Copyright © 2009 Anderson Dias, released under the MIT license