]> source.dussan.org Git - redmine.git/commitdiff
Ignore emails with "Auto-Submitted: auto-*" header (#11338).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 7 Jul 2012 05:08:58 +0000 (05:08 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 7 Jul 2012 05:08:58 +0000 (05:08 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9924 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/mail_handler.rb
test/unit/mail_handler_test.rb

index 520183c66e016b41eca24ad9ce21b37998d3f78a..4b86221f6f5b08a9c2fea721139e45992b01776b 100644 (file)
@@ -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?
index 68a0c8f2e481467d163a9e3d3de34d56712a3903..0e94fcc18644ce78e176e0a5211d8b9afceea502 100644 (file)
@@ -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