##// END OF EJS Templates
Merged r9390 from trunk....
Jean-Philippe Lang -
r9266:8fefb7c05bb9
parent child
Show More
@@ -42,6 +42,12 class MailHandler < ActionMailer::Base
42 42 super email
43 43 end
44 44
45 cattr_accessor :ignored_emails_headers
46 @@ignored_emails_headers = {
47 'X-Auto-Response-Suppress' => 'OOF',
48 'Auto-Submitted' => 'auto-replied'
49 }
50
45 51 # Processes incoming emails
46 52 # Returns the created object (eg. an issue, a message) or false
47 53 def receive(email)
@@ -54,12 +60,15 class MailHandler < ActionMailer::Base
54 60 end
55 61 return false
56 62 end
57 # Ignore out-of-office emails
58 if email.header_string("X-Auto-Response-Suppress") == 'OOF'
59 if logger && logger.info
60 logger.info "MailHandler: ignoring out-of-office email"
63 # Ignore auto generated emails
64 self.class.ignored_emails_headers.each do |key, ignored_value|
65 value = email.header_string(key)
66 if value && value.to_s.downcase == ignored_value.downcase
67 if logger && logger.info
68 logger.info "MailHandler: ignoring email with #{key}:#{value} header"
69 end
70 return false
61 71 end
62 return false
63 72 end
64 73 @user = User.find_by_mail(sender_email) if sender_email.present?
65 74 if @user && !@user.active?
@@ -359,12 +359,18 class MailHandlerTest < ActiveSupport::TestCase
359 359 end
360 360 end
361 361
362 def test_should_ignore_oof_emails
363 raw = IO.read(File.join(FIXTURES_PATH, 'ticket_on_given_project.eml'))
364 raw = "X-Auto-Response-Suppress: OOF\n" + raw
365
366 assert_no_difference 'Issue.count' do
367 assert_equal false, MailHandler.receive(raw)
362 def test_should_ignore_auto_replied_emails
363 [
364 "X-Auto-Response-Suppress: OOF",
365 "Auto-Submitted: auto-replied",
366 "Auto-Submitted: Auto-Replied"
367 ].each do |header|
368 raw = IO.read(File.join(FIXTURES_PATH, 'ticket_on_given_project.eml'))
369 raw = header + "\n" + raw
370
371 assert_no_difference 'Issue.count' do
372 assert_equal false, MailHandler.receive(raw), "email with #{header} header was not ignored"
373 end
368 374 end
369 375 end
370 376
General Comments 0
You need to be logged in to leave comments. Login now