summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2012-04-13 16:55:04 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2012-04-13 16:55:04 +0000
commit4edc30d157b06be04b51474ab23be9dd3855b56e (patch)
tree77ada579f4d326b633927973b0cf42f081b5598b /app
parentdd8d8e0560d9bef18da084cd299be4b246f6ed61 (diff)
downloadredmine-4edc30d157b06be04b51474ab23be9dd3855b56e.tar.gz
redmine-4edc30d157b06be04b51474ab23be9dd3855b56e.zip
Ignore emails with Auto-Submitted: auto-replied header (#10607).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9390 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/models/mail_handler.rb19
1 files changed, 14 insertions, 5 deletions
diff --git a/app/models/mail_handler.rb b/app/models/mail_handler.rb
index e0c12f1a0..e920dbd5f 100644
--- a/app/models/mail_handler.rb
+++ b/app/models/mail_handler.rb
@@ -42,6 +42,12 @@ class MailHandler < ActionMailer::Base
super email
end
+ cattr_accessor :ignored_emails_headers
+ @@ignored_emails_headers = {
+ 'X-Auto-Response-Suppress' => 'OOF',
+ 'Auto-Submitted' => 'auto-replied'
+ }
+
# Processes incoming emails
# Returns the created object (eg. an issue, a message) or false
def receive(email)
@@ -54,12 +60,15 @@ class MailHandler < ActionMailer::Base
end
return false
end
- # Ignore out-of-office emails
- if email.header_string("X-Auto-Response-Suppress") == 'OOF'
- if logger && logger.info
- logger.info "MailHandler: ignoring out-of-office email"
+ # Ignore auto generated emails
+ self.class.ignored_emails_headers.each do |key, ignored_value|
+ value = email.header_string(key)
+ if value && value.to_s.downcase == ignored_value.downcase
+ if logger && logger.info
+ logger.info "MailHandler: ignoring email with #{key}:#{value} header"
+ end
+ return false
end
- return false
end
@user = User.find_by_mail(sender_email) if sender_email.present?
if @user && !@user.active?