From f3daae6decd3c34d250a394117772e0c6c020e18 Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Wed, 18 Feb 2015 18:53:51 +0530 Subject: [PATCH] Improve auto generated email reply error message --- app/jobs/scheduled/poll_mailbox.rb | 2 ++ config/locales/server.en.yml | 7 +++++++ lib/email/receiver.rb | 3 ++- spec/components/email/receiver_spec.rb | 4 ++-- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/jobs/scheduled/poll_mailbox.rb b/app/jobs/scheduled/poll_mailbox.rb index 85490681d..910b93688 100644 --- a/app/jobs/scheduled/poll_mailbox.rb +++ b/app/jobs/scheduled/poll_mailbox.rb @@ -49,6 +49,8 @@ module Jobs message_template = :email_reject_topic_not_found when Email::Receiver::TopicClosedError message_template = :email_reject_topic_closed + when Email::Receiver::AutoGeneratedEmailError + message_template = :email_reject_auto_generated when ActiveRecord::Rollback message_template = :email_reject_post_error when Email::Receiver::InvalidPost diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 56b2ceaa2..0569ea615 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -1665,6 +1665,13 @@ en: The topic is closed. If you believe this is in error, contact a staff member. + email_reject_auto_generated: + subject_template: "Email issue -- Auto Generated Reply" + text_body_template: | + We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work. + + Your email reply was auto generated, which we don't accept. If you believe this is in error, contact a staff member. + email_error_notification: subject_template: "Email issue -- POP authentication error" text_body_template: | diff --git a/lib/email/receiver.rb b/lib/email/receiver.rb index bc8d43e81..bf8f825b2 100644 --- a/lib/email/receiver.rb +++ b/lib/email/receiver.rb @@ -17,6 +17,7 @@ module Email class BadDestinationAddress < ProcessingError; end class TopicNotFoundError < ProcessingError; end class TopicClosedError < ProcessingError; end + class AutoGeneratedEmailError < ProcessingError; end class EmailLogNotFound < ProcessingError; end class InvalidPost < ProcessingError; end @@ -41,7 +42,7 @@ module Email end raise BadDestinationAddress if dest_info[:type] == :invalid - raise TopicNotFoundError if message.header.to_s =~ /auto-generated/ || message.header.to_s =~ /auto-replied/ + raise AutoGeneratedEmailError if message.header.to_s =~ /auto-generated/ || message.header.to_s =~ /auto-replied/ # TODO get to a state where we can remove this @message = message diff --git a/spec/components/email/receiver_spec.rb b/spec/components/email/receiver_spec.rb index b21d7a5f2..dedb2a863 100644 --- a/spec/components/email/receiver_spec.rb +++ b/spec/components/email/receiver_spec.rb @@ -349,8 +349,8 @@ This is a link http://example.com" describe "auto response email replies should not be accepted" do let!(:reply_key) { '636ca428858779856c226bb145ef4fad' } let!(:email_raw) { fixture_file("emails/auto_reply.eml") } - it "raises a TopicNotFoundError" do - expect { receiver.process }.to raise_error(Email::Receiver::TopicNotFoundError) + it "raises a AutoGeneratedEmailError" do + expect { receiver.process }.to raise_error(Email::Receiver::AutoGeneratedEmailError) end end