diff --git a/app/models/mailer.rb b/app/models/mailer.rb
index ddbc7b394..148b1da16 100644
--- a/app/models/mailer.rb
+++ b/app/models/mailer.rb
@@ -670,14 +670,18 @@ class Mailer < ActionMailer::Base
@author&.logged? ? @author.name : Setting.app_title
end
from = mail_from.format
- list_id = "<#{mail_from.address.to_s.tr('@', '.')}>"
+ from_addr = mail_from.address.to_s
rescue Mail::Field::IncompleteParseError
# Use Setting.mail_from as it is if Mail::Address cannot parse it
# (probably the emission address is not RFC compliant)
from = Setting.mail_from.to_s
- list_id = "<#{from.tr('@', '.')}>"
+ from_addr = from
end
+ project_identifier =
+ Setting.include_project_in_list_id? ? self.headers['X-Redmine-Project']&.value : nil
+ list_id = "<#{[project_identifier, from_addr.tr('@', '.')].compact.join('.')}>"
+
headers.reverse_merge! 'X-Mailer' => 'Redmine',
'X-Redmine-Host' => Setting.host_name,
'X-Redmine-Site' => Setting.app_title,
diff --git a/app/views/settings/_notifications.html.erb b/app/views/settings/_notifications.html.erb
index aafbe4340..342e006c3 100644
--- a/app/views/settings/_notifications.html.erb
+++ b/app/views/settings/_notifications.html.erb
@@ -7,6 +7,8 @@
<%= setting_check_box :plain_text_mail %>
<%= setting_check_box :show_status_changes_in_mail_subject %>
+
+<%= setting_check_box :include_project_in_list_id %>