diff options
author | Go MAEDA <maeda@farend.jp> | 2019-02-12 23:35:05 +0000 |
---|---|---|
committer | Go MAEDA <maeda@farend.jp> | 2019-02-12 23:35:05 +0000 |
commit | b0b8978ff84ef25dfa8efa842a8643377bbbe266 (patch) | |
tree | 15bc5e6a240d8bc1dc2d68e76fb30d2ab8563adb /app | |
parent | 58ea5b9d537234236c3fd95aaec6350658e75499 (diff) | |
download | redmine-b0b8978ff84ef25dfa8efa842a8643377bbbe266.tar.gz redmine-b0b8978ff84ef25dfa8efa842a8643377bbbe266.zip |
Fix: Mail handler does not ignore emails sent from emission email address if Setting.mail_from includes display name (#30785).
Patch by Go MAEDA.
git-svn-id: http://svn.redmine.org/redmine/trunk@17862 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rwxr-xr-x | app/models/mail_handler.rb | 2 | ||||
-rw-r--r-- | app/models/setting.rb | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/app/models/mail_handler.rb b/app/models/mail_handler.rb index 9298e1b12..6586c52bb 100755 --- a/app/models/mail_handler.rb +++ b/app/models/mail_handler.rb @@ -91,7 +91,7 @@ class MailHandler < ActionMailer::Base @handler_options = options sender_email = email.from.to_a.first.to_s.strip # Ignore emails received from the application emission address to avoid hell cycles - if sender_email.casecmp(Setting.mail_from.to_s.strip) == 0 + if sender_email.casecmp(Setting.mail_from_address) == 0 if logger logger.info "MailHandler: ignoring email from Redmine emission address [#{sender_email}]" end diff --git a/app/models/setting.rb b/app/models/setting.rb index e59c48c86..e6de85906 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -228,6 +228,12 @@ class Setting < ActiveRecord::Base Object.const_defined?(:OpenID) && self[:openid].to_i > 0 end + # Extracts an email address ("joe@example.com") from + # Setting.mail_from ("Joe Bloggs <joe@example.com>") + def self.mail_from_address + self.mail_from.to_s.gsub(/(?:.*<|>.*|\(.*\))/, '').strip + end + # Checks if settings have changed since the values were read # and clears the cache hash if it's the case # Called once per request |