diff options
author | Toshi MARUYAMA <marutosijp2@yahoo.co.jp> | 2012-11-16 07:52:05 +0000 |
---|---|---|
committer | Toshi MARUYAMA <marutosijp2@yahoo.co.jp> | 2012-11-16 07:52:05 +0000 |
commit | d5c08680f64a70d06fae6f0e7a2c4248ede1524b (patch) | |
tree | b3589462d072c390a07a9c2f4153dbb7c5c25ffe | |
parent | 9b82b948e387e1de1ce6121dc2f9124d5f7ba346 (diff) | |
download | redmine-d5c08680f64a70d06fae6f0e7a2c4248ede1524b.tar.gz redmine-d5c08680f64a70d06fae6f0e7a2c4248ede1524b.zip |
Merged r10812 from trunk (#12375)
fix receiving mail subject broken which does not begin with encoding name.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.1-stable@10816 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/models/mail_handler.rb | 3 | ||||
-rw-r--r-- | test/fixtures/mail_handler/subject_japanese_2.eml | 7 | ||||
-rw-r--r-- | test/unit/mail_handler_test.rb | 11 |
3 files changed, 20 insertions, 1 deletions
diff --git a/app/models/mail_handler.rb b/app/models/mail_handler.rb index 8a5925cab..c6e3d8ff2 100644 --- a/app/models/mail_handler.rb +++ b/app/models/mail_handler.rb @@ -373,7 +373,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 diff --git a/test/fixtures/mail_handler/subject_japanese_2.eml b/test/fixtures/mail_handler/subject_japanese_2.eml new file mode 100644 index 000000000..d25d47863 --- /dev/null +++ b/test/fixtures/mail_handler/subject_japanese_2.eml @@ -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 diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb index fd8e1404f..a0c5645d9 100644 --- a/test/unit/mail_handler_test.rb +++ b/test/unit/mail_handler_test.rb @@ -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! |