From 232edc62372730de6045e958821c16dee14ac65f Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 7 Jul 2012 05:08:58 +0000 Subject: [PATCH] Ignore emails with "Auto-Submitted: auto-*" header (#11338). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9924 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/mail_handler.rb | 15 +++++++++------ test/unit/mail_handler_test.rb | 3 ++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/models/mail_handler.rb b/app/models/mail_handler.rb index 520183c66..4b86221f6 100644 --- a/app/models/mail_handler.rb +++ b/app/models/mail_handler.rb @@ -50,8 +50,8 @@ class MailHandler < ActionMailer::Base cattr_accessor :ignored_emails_headers @@ignored_emails_headers = { - 'X-Auto-Response-Suppress' => 'OOF', - 'Auto-Submitted' => 'auto-replied' + 'X-Auto-Response-Suppress' => 'oof', + 'Auto-Submitted' => /^auto-/ } # Processes incoming emails @@ -69,11 +69,14 @@ class MailHandler < ActionMailer::Base # Ignore auto generated emails self.class.ignored_emails_headers.each do |key, ignored_value| value = email.header[key] - if value && value.to_s.downcase == ignored_value.downcase - if logger && logger.info - logger.info "MailHandler: ignoring email with #{key}:#{value} header" + if value + value = value.to_s.downcase + if (ignored_value.is_a?(Regexp) && value.match(ignored_value)) || value == ignored_value + if logger && logger.info + logger.info "MailHandler: ignoring email with #{key}:#{value} header" + end + return false end - return false end end @user = User.find_by_mail(sender_email) if sender_email.present? diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb index 68a0c8f2e..0e94fcc18 100644 --- a/test/unit/mail_handler_test.rb +++ b/test/unit/mail_handler_test.rb @@ -382,7 +382,8 @@ class MailHandlerTest < ActiveSupport::TestCase [ "X-Auto-Response-Suppress: OOF", "Auto-Submitted: auto-replied", - "Auto-Submitted: Auto-Replied" + "Auto-Submitted: Auto-Replied", + "Auto-Submitted: auto-generated" ].each do |header| raw = IO.read(File.join(FIXTURES_PATH, 'ticket_on_given_project.eml')) raw = header + "\n" + raw -- 2.39.5