FIX: bounced email can contain multiple status codes

This commit is contained in:
Gerhard Schlager 2018-01-03 17:59:20 +01:00
parent 7ca2e6a80c
commit ceb7590bcb
3 changed files with 4 additions and 1 deletions
lib/email
spec

@ -169,7 +169,7 @@ module Email
email ||= @from_email
if @mail.error_status.present? && @mail.error_status.start_with?("4.")
if @mail.error_status.present? && Array.wrap(@mail.error_status).any? { |s| s.start_with?("4.") }
Email::Receiver.update_bounce_score(email, SiteSetting.soft_bounce_score)
else
Email::Receiver.update_bounce_score(email, SiteSetting.hard_bounce_score)

@ -81,6 +81,9 @@ describe Email::Receiver do
it "raises a BouncerEmailError when email is a bounced email" do
expect { process(:bounced_email) }.to raise_error(Email::Receiver::BouncedEmailError)
expect(IncomingEmail.last.is_bounce).to eq(true)
expect { process(:bounced_email_multiple_status_codes) }.to raise_error(Email::Receiver::BouncedEmailError)
expect(IncomingEmail.last.is_bounce).to eq(true)
end
it "logs a blank error" do

Binary file not shown.