@@ -430,7 +430,17 class Mailer < ActionMailer::Base | |||||
430 |
|
430 | |||
431 | def self.deliver_mail(mail) |
|
431 | def self.deliver_mail(mail) | |
432 | return false if mail.to.blank? && mail.cc.blank? && mail.bcc.blank? |
|
432 | return false if mail.to.blank? && mail.cc.blank? && mail.bcc.blank? | |
433 | super |
|
433 | begin | |
|
434 | # Log errors when raise_delivery_errors is set to false, Rails does not | |||
|
435 | mail.raise_delivery_errors = true | |||
|
436 | super | |||
|
437 | rescue Exception => e | |||
|
438 | if ActionMailer::Base.raise_delivery_errors | |||
|
439 | raise e | |||
|
440 | else | |||
|
441 | Rails.logger.error "Email delivery error: #{e.message}" | |||
|
442 | end | |||
|
443 | end | |||
434 | end |
|
444 | end | |
435 |
|
445 | |||
436 | def self.method_missing(method, *args, &block) |
|
446 | def self.method_missing(method, *args, &block) |
@@ -661,6 +661,29 class MailerTest < ActiveSupport::TestCase | |||||
661 | assert_include '<tag>', html_part.body.encoded |
|
661 | assert_include '<tag>', html_part.body.encoded | |
662 | end |
|
662 | end | |
663 |
|
663 | |||
|
664 | def test_should_raise_delivery_errors_when_raise_delivery_errors_is_true | |||
|
665 | mail = Mailer.test_email(User.find(1)) | |||
|
666 | mail.delivery_method.stubs(:deliver!).raises(Exception.new("delivery error")) | |||
|
667 | ||||
|
668 | ActionMailer::Base.raise_delivery_errors = true | |||
|
669 | assert_raise Exception, "delivery error" do | |||
|
670 | mail.deliver | |||
|
671 | end | |||
|
672 | ensure | |||
|
673 | ActionMailer::Base.raise_delivery_errors = false | |||
|
674 | end | |||
|
675 | ||||
|
676 | def test_should_log_delivery_errors_when_raise_delivery_errors_is_false | |||
|
677 | mail = Mailer.test_email(User.find(1)) | |||
|
678 | mail.delivery_method.stubs(:deliver!).raises(Exception.new("delivery error")) | |||
|
679 | ||||
|
680 | Rails.logger.expects(:error).with("Email delivery error: delivery error") | |||
|
681 | ActionMailer::Base.raise_delivery_errors = false | |||
|
682 | assert_nothing_raised do | |||
|
683 | mail.deliver | |||
|
684 | end | |||
|
685 | end | |||
|
686 | ||||
664 | private |
|
687 | private | |
665 |
|
688 | |||
666 | def last_email |
|
689 | def last_email |
General Comments 0
You need to be logged in to leave comments.
Login now