Mailer.token_for generates invalid message_id when using from address with full name (#16619).

git-svn-id: http://svn.redmine.org/redmine/trunk@13126 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2014-05-02 07:56:11 +00:00
parent 61776a8b7e
commit 53deb6ca88
2 changed files with 7 additions and 1 deletions

View File

@ -464,7 +464,7 @@ class Mailer < ActionMailer::Base
if rand if rand
hash << Redmine::Utils.random_hex(8) hash << Redmine::Utils.random_hex(8)
end end
host = Setting.mail_from.to_s.gsub(%r{^.*@}, '') host = Setting.mail_from.to_s.strip.gsub(%r{^.*@|>}, '')
host = "#{::Socket.gethostname}.redmine" if host.empty? host = "#{::Socket.gethostname}.redmine" if host.empty?
"#{hash.join('.')}@#{host}" "#{hash.join('.')}@#{host}"
end end

View File

@ -650,6 +650,12 @@ class MailerTest < ActiveSupport::TestCase
assert ActionMailer::Base.perform_deliveries assert ActionMailer::Base.perform_deliveries
end end
def test_token_for_should_strip_trailing_gt_from_address_with_full_name
with_settings :mail_from => "Redmine Mailer<no-reply@redmine.org>" do
assert_match /\Aredmine.issue-\d+\.\d+\.[0-9a-f]+@redmine.org\z/, Mailer.token_for(Issue.generate!)
end
end
def test_layout_should_include_the_emails_header def test_layout_should_include_the_emails_header
with_settings :emails_header => "*Header content*" do with_settings :emails_header => "*Header content*" do
with_settings :plain_text_mail => 0 do with_settings :plain_text_mail => 0 do