@@ -50,8 +50,8 class MailHandler < ActionMailer::Base | |||||
50 |
|
50 | |||
51 | cattr_accessor :ignored_emails_headers |
|
51 | cattr_accessor :ignored_emails_headers | |
52 | @@ignored_emails_headers = { |
|
52 | @@ignored_emails_headers = { | |
53 |
'X-Auto-Response-Suppress' => ' |
|
53 | 'X-Auto-Response-Suppress' => 'oof', | |
54 |
'Auto-Submitted' => |
|
54 | 'Auto-Submitted' => /^auto-/ | |
55 | } |
|
55 | } | |
56 |
|
56 | |||
57 | # Processes incoming emails |
|
57 | # Processes incoming emails | |
@@ -69,11 +69,14 class MailHandler < ActionMailer::Base | |||||
69 | # Ignore auto generated emails |
|
69 | # Ignore auto generated emails | |
70 | self.class.ignored_emails_headers.each do |key, ignored_value| |
|
70 | self.class.ignored_emails_headers.each do |key, ignored_value| | |
71 | value = email.header[key] |
|
71 | value = email.header[key] | |
72 | if value && value.to_s.downcase == ignored_value.downcase |
|
72 | if value | |
73 | if logger && logger.info |
|
73 | value = value.to_s.downcase | |
74 | logger.info "MailHandler: ignoring email with #{key}:#{value} header" |
|
74 | if (ignored_value.is_a?(Regexp) && value.match(ignored_value)) || value == ignored_value | |
|
75 | if logger && logger.info | |||
|
76 | logger.info "MailHandler: ignoring email with #{key}:#{value} header" | |||
|
77 | end | |||
|
78 | return false | |||
75 | end |
|
79 | end | |
76 | return false |
|
|||
77 | end |
|
80 | end | |
78 | end |
|
81 | end | |
79 | @user = User.find_by_mail(sender_email) if sender_email.present? |
|
82 | @user = User.find_by_mail(sender_email) if sender_email.present? |
@@ -382,7 +382,8 class MailHandlerTest < ActiveSupport::TestCase | |||||
382 | [ |
|
382 | [ | |
383 | "X-Auto-Response-Suppress: OOF", |
|
383 | "X-Auto-Response-Suppress: OOF", | |
384 | "Auto-Submitted: auto-replied", |
|
384 | "Auto-Submitted: auto-replied", | |
385 | "Auto-Submitted: Auto-Replied" |
|
385 | "Auto-Submitted: Auto-Replied", | |
|
386 | "Auto-Submitted: auto-generated" | |||
386 | ].each do |header| |
|
387 | ].each do |header| | |
387 | raw = IO.read(File.join(FIXTURES_PATH, 'ticket_on_given_project.eml')) |
|
388 | raw = IO.read(File.join(FIXTURES_PATH, 'ticket_on_given_project.eml')) | |
388 | raw = header + "\n" + raw |
|
389 | raw = header + "\n" + raw |
General Comments 0
You need to be logged in to leave comments.
Login now