diff --git a/app/models/mailer.rb b/app/models/mailer.rb index bd94b9f..2502ce2 100644 --- a/app/models/mailer.rb +++ b/app/models/mailer.rb @@ -41,6 +41,7 @@ class Mailer < ActionMailer::Base 'Issue-Author' => issue.author.login redmine_headers 'Issue-Assignee' => issue.assigned_to.login if issue.assigned_to message_id issue + @author = issue.author recipients issue.recipients cc(issue.watcher_recipients - @recipients) subject "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] (#{issue.status.name}) #{issue.subject}" @@ -394,6 +395,10 @@ class Mailer < ActionMailer::Base cc.delete(@author.mail) if cc end + if @author.logged? + redmine_headers 'Sender' => @author.login + end + notified_users = [recipients, cc].flatten.compact.uniq # Rails would log recipients only, not cc and bcc mylogger.info "Sending email notification to: #{notified_users.join(', ')}" if mylogger diff --git a/test/unit/mailer_test.rb b/test/unit/mailer_test.rb index 042b8c3..9e32918 100644 --- a/test/unit/mailer_test.rb +++ b/test/unit/mailer_test.rb @@ -138,6 +138,14 @@ class MailerTest < ActiveSupport::TestCase assert_equal 'auto-generated', mail.header_string('Auto-Submitted') end + def test_email_headers_should_include_sender + issue = Issue.find(1) + Mailer.deliver_issue_add(issue) + mail = ActionMailer::Base.deliveries.last + assert_not_nil mail + assert_equal issue.author.login, mail.header_string('X-Redmine-Sender') + end + def test_plain_text_mail Setting.plain_text_mail = 1 journal = Journal.find(2)