Defect #14699
Cannot change "From" header in email notifications
Status: | Closed | Start date: | ||
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | % Done: | 0% | ||
Category: | Code cleanup/refactoring | |||
Target version: | 2.6.1 | |||
Resolution: | Fixed | Affected version: |
Description
In Redmine 1.x (Rails 2.3), using from method in custom mailer changed the From header from Setting.mail_from.
According to Rails 3 Action Mailer documentation, mail method can receive :from header. Redmine 2.x's Mailer#mail does header.merge!{'From'=>Setting.mail_from,...}. This results in the from header being overridden and removes default functionality.
I have made a change to Mailer#mail to do header.reverse_merge! instead of header.merge!, but I am unsure if this is the best path. However, this did set up the email headers correctly.
History
#1
Updated by Vincent Robert over 7 years ago
- File merge_headers.diff
added
Here is a patch where we use the headers.reverse_merge!
method instead of headers.merge!
As we can pass headers as a parameter, I think we should use a reverse_merge in order to not override our hash with default values:
def mail(headers={}, &block) headers.reverse_merge! 'X-Mailer' => 'Redmine', 'X-Redmine-Host' => Setting.host_name, 'X-Redmine-Site' => Setting.app_title, 'X-Auto-Response-Suppress' => 'OOF', 'Auto-Submitted' => 'auto-generated', 'From' => Setting.mail_from, 'List-Id' => "<#{Setting.mail_from.to_s.gsub('@', '.')}>"
This could be very useful in some of my plugins. Thanks
#2
Updated by Jean-Philippe Lang over 7 years ago
- Target version set to 2.6.1
#3
Updated by Jean-Philippe Lang over 7 years ago
- Category changed from Email notifications to Code cleanup/refactoring
- Status changed from New to Resolved
- Assignee set to Jean-Philippe Lang
- Resolution set to Fixed
Fix committed in r13784, thanks.
#4
Updated by Jean-Philippe Lang over 7 years ago
- Status changed from Resolved to Closed