]> source.dussan.org Git - redmine.git/commitdiff
Adds a delivery method that writes emails in tmp/emails for testing purpose.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 19 Nov 2011 13:51:34 +0000 (13:51 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 19 Nov 2011 13:51:34 +0000 (13:51 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7846 e93f8b46-1217-0410-a6f0-8f06a7374b81

config/initializers/10-patches.rb

index aa51c0e7a4f4bee7ca1d31c353493759409b8a71..f409f6611394345db9f399bc46dbda1a7e1e5e99 100644 (file)
@@ -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