Browse Source

fix receiving mail subject broken which does not begin with encoding name (#12375)

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10812 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/2.2.0
Toshi MARUYAMA 11 years ago
parent
commit
617cb7ac53

+ 2
- 1
app/models/mail_handler.rb View File

@@ -377,7 +377,8 @@ class MailHandler < ActionMailer::Base
# try to reencode to utf8 manually with ruby1.8
begin
if h = email.header[:subject]
if m = h.value.match(/^=\?([^\?]+)\?/)
# http://tools.ietf.org/html/rfc2047#section-4
if m = h.value.match(/=\?([^\?]+)\?[BbQq]\?/)
subject = Redmine::CodesetUtil.to_utf8(subject, m[1])
end
end

+ 7
- 0
test/fixtures/mail_handler/subject_japanese_2.eml View File

@@ -0,0 +1,7 @@
From: John Smith <JSmith@somenet.foo>
To: "redmine@somenet.foo" <redmine@somenet.foo>
Subject: Re: =?iso-2022-jp?b?GyRCJUYlOSVIGyhCCg=?=
Date: Fri, 1 Jun 2012 14:39:38 +0200
Message-ID: <87C31D42249DD0489D1A1444E3232DD7019D6183@foo.bar>

Fixture

+ 11
- 0
test/unit/mail_handler_test.rb View File

@@ -393,6 +393,17 @@ class MailHandlerTest < ActiveSupport::TestCase
assert_equal ja, issue.subject
end

def test_add_issue_with_mixed_japanese_subject
issue = submit_email(
'subject_japanese_2.eml',
:issue => {:project => 'ecookbook'}
)
assert_kind_of Issue, issue
ja = "Re: \xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88"
ja.force_encoding('UTF-8') if ja.respond_to?(:force_encoding)
assert_equal ja, issue.subject
end

def test_should_ignore_emails_from_locked_users
User.find(2).lock!


Loading…
Cancel
Save