Defect #30785
closedMail handler does not ignore emails sent from emission email address if Setting.mail_from includes display name
0%
Description
According to the comment at source:tags/4.0.1/app/models/mail_handler.rb#L93, mail handler is supposed to ignore emails sent from emission email address (Setting.mail_from
). It behaves as expected if Setting.mail_from
only includes an email address like "joe@example.com". However, it does not ignore the emails if Setting.mail_from
includes a display name like "Joe Bloggs <joe@example.com>". The reason is that the code at source:tags/4.0.1/app/models/mail_handler.rb#L94 don't assume the format other than "joe@example.com".
- OK:
joe@example.com
- NG:
<joe@example.com>
- NG:
Joe Bloggs <joe@example.com>
- NG:
joe@example.com (Joe Bloggs)
Files
Related issues
Updated by Go MAEDA over 5 years ago
- Related to Defect #14792: Don't add a display name and extra angle brackets in List-Id header field added
Updated by Go MAEDA over 5 years ago
This fix works for ordinary email addresses.
Index: app/models/mail_handler.rb
===================================================================
--- app/models/mail_handler.rb (revision 17853)
+++ app/models/mail_handler.rb (working copy)
@@ -91,7 +91,7 @@
@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.to_s.gsub(/(?:.*<|>.*|\(.*\)|\s)/, '')) == 0
if logger
logger.info "MailHandler: ignoring email from Redmine emission address [#{sender_email}]"
end
Updated by Go MAEDA over 5 years ago
- Target version set to 4.0.2
Setting the target version to 4.0.2.
Updated by Go MAEDA over 5 years ago
- Subject changed from Mail handler may not ignore emails sent from emission email address to Mail handler does not ignore emails sent from emission email address if Setting.mail_from includes display name
- Status changed from New to Resolved
- Assignee set to Go MAEDA
- Resolution set to Fixed
Committed.
Updated by Go MAEDA over 5 years ago
- Status changed from Closed to Reopened
Go MAEDA wrote:
The patch adds a new method
Setting.mail_from_addess
to extract an email address from the value of Setting.mail_from. I think it is useful to fix #14792 and implement #5913.
#5913 and #14792 have been fixed without using newly added Setting.mail_from_addess
method. Only MailHandler#receive uses the method now and I don't think other methods will use it in the future.
Therefore, I think r17862 should be reverted before releasing Redmine 4.0.2 and this issue should be fixed like the following:
diff --git a/app/models/mail_handler.rb b/app/models/mail_handler.rb
index 9298e1b12..aed977bbd 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.to_s.gsub(/(?:.*<|>.*|\(.*\))/, '').strip) == 0
if logger
logger.info "MailHandler: ignoring email from Redmine emission address [#{sender_email}]"
end
Updated by Go MAEDA over 5 years ago
- File 30785-fix-v2.patch 30785-fix-v2.patch added