| 629 |
629 |
def mail(headers={}, &block)
|
| 630 |
630 |
# Add a display name to the From field if Setting.mail_from does not
|
| 631 |
631 |
# include it
|
| 632 |
|
mail_from = Mail::Address.new(Setting.mail_from)
|
| 633 |
|
if mail_from.display_name.blank? && mail_from.comments.blank?
|
| 634 |
|
mail_from.display_name =
|
| 635 |
|
@author&.logged? ? @author.name : Setting.app_title
|
|
632 |
begin
|
|
633 |
mail_from = Mail::Address.new(Setting.mail_from)
|
|
634 |
if mail_from.display_name.blank? && mail_from.comments.blank?
|
|
635 |
mail_from.display_name =
|
|
636 |
@author&.logged? ? @author.name : Setting.app_title
|
|
637 |
end
|
|
638 |
header_from = mail_from.format
|
|
639 |
header_list_id = "<#{mail_from.address.to_s.tr('@', '.')}>"
|
|
640 |
rescue Mail::Field::IncompleteParseError
|
|
641 |
# Use Setting.mail_from as it is if Mail::Address cannot parse it
|
|
642 |
# (probably the emission address is not RFC compliant)
|
|
643 |
header_from = Setting.mail_from.to_s
|
|
644 |
header_list_id = "<#{header_from.tr('@', '.')}>"
|
| 636 |
645 |
end
|
| 637 |
646 |
|
| 638 |
647 |
headers.reverse_merge! 'X-Mailer' => 'Redmine',
|
| ... | ... | |
| 640 |
649 |
'X-Redmine-Site' => Setting.app_title,
|
| 641 |
650 |
'X-Auto-Response-Suppress' => 'All',
|
| 642 |
651 |
'Auto-Submitted' => 'auto-generated',
|
| 643 |
|
'From' => mail_from.format,
|
| 644 |
|
'List-Id' => "<#{mail_from.address.to_s.tr('@', '.')}>"
|
|
652 |
'From' => header_from,
|
|
653 |
'List-Id' => header_list_id
|
| 645 |
654 |
|
| 646 |
655 |
# Replaces users with their email addresses
|
| 647 |
656 |
[:to, :cc, :bcc].each do |key|
|