From 280faf6780d286dd0efefbf7b3f7b5af1d3ebc72 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 19 Nov 2011 13:51:34 +0000 Subject: [PATCH] Adds a delivery method that writes emails in tmp/emails for testing purpose. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7846 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- config/initializers/10-patches.rb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/config/initializers/10-patches.rb b/config/initializers/10-patches.rb index aa51c0e7a..f409f6611 100644 --- a/config/initializers/10-patches.rb +++ b/config/initializers/10-patches.rb @@ -65,9 +65,9 @@ end ActionView::Base.field_error_proc = Proc.new{ |html_tag, instance| "#{html_tag}" } -# Adds :async_smtp and :async_sendmail delivery methods -# to perform email deliveries asynchronously module AsynchronousMailer + # Adds :async_smtp and :async_sendmail delivery methods + # to perform email deliveries asynchronously %w(smtp sendmail).each do |type| define_method("perform_delivery_async_#{type}") do |mail| Thread.start do @@ -75,6 +75,13 @@ module AsynchronousMailer end end end + + # Adds a delivery method that writes emails in tmp/emails for testing purpose + def perform_delivery_tmp_file(mail) + dest_dir = File.join(Rails.root, 'tmp', 'emails') + Dir.mkdir(dest_dir) unless File.directory?(dest_dir) + File.open(File.join(dest_dir, mail.message_id.gsub(/[<>]/, '') + '.eml'), 'wb') {|f| f.write(mail.encoded) } + end end ActionMailer::Base.send :include, AsynchronousMailer