##// END OF EJS Templates
Merged r9796 from trunk....
Jean-Philippe Lang -
r9656:1d0fb85179e7
parent child
Show More
@@ -0,0 +1,11
1 Content-Type: application/ms-tnef; name="winmail.dat"
2 Content-Transfer-Encoding: binary
3 From: John Smith <JSmith@somenet.foo>
4 To: "redmine@somenet.foo" <redmine@somenet.foo>
5 Subject: =?iso-8859-1?Q?Testmail_from_Webmail:_=E4_=F6_=FC...?=
6 Date: Fri, 1 Jun 2012 14:39:38 +0200
7 Message-ID: <87C31D42249DD0489D1A1444E3232DD7019D6183@foo.bar>
8 Accept-Language: de-CH, en-US
9 Content-Language: de-CH
10
11 Fixture
@@ -163,7 +163,7 class MailHandler < ActionMailer::Base
163 issue = Issue.new(:author => user, :project => project)
163 issue = Issue.new(:author => user, :project => project)
164 issue.safe_attributes = issue_attributes_from_keywords(issue)
164 issue.safe_attributes = issue_attributes_from_keywords(issue)
165 issue.safe_attributes = {'custom_field_values' => custom_field_values_from_keywords(issue)}
165 issue.safe_attributes = {'custom_field_values' => custom_field_values_from_keywords(issue)}
166 issue.subject = email.subject.to_s.chomp[0,255]
166 issue.subject = cleaned_up_subject
167 if issue.subject.blank?
167 if issue.subject.blank?
168 issue.subject = '(no subject)'
168 issue.subject = '(no subject)'
169 end
169 end
@@ -223,7 +223,7 class MailHandler < ActionMailer::Base
223 end
223 end
224
224
225 if !message.locked?
225 if !message.locked?
226 reply = Message.new(:subject => email.subject.gsub(%r{^.*msg\d+\]}, '').strip,
226 reply = Message.new(:subject => cleaned_up_subject.gsub(%r{^.*msg\d+\]}, '').strip,
227 :content => cleaned_up_text_body)
227 :content => cleaned_up_text_body)
228 reply.author = user
228 reply.author = user
229 reply.board = message.board
229 reply.board = message.board
@@ -364,6 +364,23 class MailHandler < ActionMailer::Base
364 cleanup_body(plain_text_body)
364 cleanup_body(plain_text_body)
365 end
365 end
366
366
367 def cleaned_up_subject
368 subject = email.subject.to_s
369 unless subject.respond_to?(:encoding)
370 # try to reencode to utf8 manually with ruby1.8
371 begin
372 if h = email.header[:subject]
373 if m = h.value.match(/^=\?([^\?]+)\?/)
374 subject = Redmine::CodesetUtil.to_utf8(subject, m[1])
375 end
376 end
377 rescue
378 # nop
379 end
380 end
381 subject.strip[0,255]
382 end
383
367 def self.full_sanitizer
384 def self.full_sanitizer
368 @full_sanitizer ||= HTML::FullSanitizer.new
385 @full_sanitizer ||= HTML::FullSanitizer.new
369 end
386 end
@@ -347,6 +347,15 class MailHandlerTest < ActiveSupport::TestCase
347 assert_equal 'caaf384198bcbc9563ab5c058acd73cd', attachment.digest
347 assert_equal 'caaf384198bcbc9563ab5c058acd73cd', attachment.digest
348 end
348 end
349
349
350 def test_add_issue_with_iso_8859_1_subject
351 issue = submit_email(
352 'subject_as_iso-8859-1.eml',
353 :issue => {:project => 'ecookbook'}
354 )
355 assert_kind_of Issue, issue
356 assert_equal 'Testmail from Webmail: ä ö ü...', issue.subject
357 end
358
350 def test_should_ignore_emails_from_locked_users
359 def test_should_ignore_emails_from_locked_users
351 User.find(2).lock!
360 User.find(2).lock!
352
361
General Comments 0
You need to be logged in to leave comments. Login now