Project

General

Profile

Feature #41031 » 41031-experimental.patch

Go MAEDA, 2024-07-17 16:26

View differences:

app/models/mailer.rb
670 670
          @author&.logged? ? @author.name : Setting.app_title
671 671
      end
672 672
      from = mail_from.format
673
      list_id = "<#{mail_from.address.to_s.tr('@', '.')}>"
673
      from_addr = mail_from.address.to_s
674 674
    rescue Mail::Field::IncompleteParseError
675 675
      # Use Setting.mail_from as it is if Mail::Address cannot parse it
676 676
      # (probably the emission address is not RFC compliant)
677 677
      from = Setting.mail_from.to_s
678
      list_id = "<#{from.tr('@', '.')}>"
678
      from_addr = from
679 679
    end
680 680

  
681
    project_identifier =
682
      Setting.include_project_in_list_id? ? self.headers['X-Redmine-Project']&.value : nil
683
    list_id = "<#{[project_identifier, from_addr.tr('@', '.')].compact.join('.')}>"
684

  
681 685
    headers.reverse_merge! 'X-Mailer' => 'Redmine',
682 686
            'X-Redmine-Host' => Setting.host_name,
683 687
            'X-Redmine-Site' => Setting.app_title,
app/views/settings/_notifications.html.erb
7 7
<p><%= setting_check_box :plain_text_mail %></p>
8 8

  
9 9
<p><%= setting_check_box :show_status_changes_in_mail_subject %></p>
10

  
11
<p><%= setting_check_box :include_project_in_list_id %></p>
10 12
</div>
11 13

  
12 14
<fieldset class="box" id="notified_events"><legend><%=l(:text_select_mail_notifications)%></legend>
config/locales/en.yml
521 521
  setting_show_status_changes_in_mail_subject: Show status changes in issue mail notifications subject
522 522
  setting_project_list_defaults: Projects list defaults
523 523
  setting_twofa: Two-factor authentication
524
  setting_include_project_in_list_id: Include project identifier in List-Id header
524 525

  
525 526
  permission_add_project: Create project
526 527
  permission_add_subprojects: Create subprojects
config/settings.yml
349 349
  default: 1
350 350
show_status_changes_in_mail_subject:
351 351
  default: 1
352
include_project_in_list_id:
353
  default: 1
test/unit/mailer_test.rb
220 220
    assert_equal 'All', mail.header['X-Auto-Response-Suppress'].to_s
221 221
    assert_equal 'auto-generated', mail.header['Auto-Submitted'].to_s
222 222
    # List-Id should not include the display name "Redmine"
223
    assert_equal '<redmine.example.net>', mail.header['List-Id'].to_s
223
    assert_equal '<ecookbook.redmine.example.net>', mail.header['List-Id'].to_s
224 224
    assert_equal 'Bug', mail.header['X-Redmine-Issue-Tracker'].to_s
225 225
    assert_equal 'Low', mail.header['X-Redmine-Issue-Priority'].to_s
226 226
  end
(1-1/2)