Changes the email truncation so a delimiter can be prefixed by email quotes or spaces ("> Eric said..."). This will let it be combined with a "--- Reply above ---" delimiter to match "> --- Reply above ---" git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4361 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
a04d64881c
commit
0395eb99de
|
@ -318,7 +318,7 @@ class MailHandler < ActionMailer::Base
|
|||
def cleanup_body(body)
|
||||
delimiters = Setting.mail_handler_body_delimiters.to_s.split(/[\r\n]+/).reject(&:blank?).map {|s| Regexp.escape(s)}
|
||||
unless delimiters.empty?
|
||||
regex = Regexp.new("^(#{ delimiters.join('|') })\s*[\r\n].*", Regexp::MULTILINE)
|
||||
regex = Regexp.new("^[> ]*(#{ delimiters.join('|') })\s*[\r\n].*", Regexp::MULTILINE)
|
||||
body = body.gsub(regex, '')
|
||||
end
|
||||
body.strip
|
||||
|
|
48
test/fixtures/mail_handler/issue_update_with_multiple_quoted_reply_above.eml
vendored
Normal file
48
test/fixtures/mail_handler/issue_update_with_multiple_quoted_reply_above.eml
vendored
Normal file
|
@ -0,0 +1,48 @@
|
|||
Return-Path: <JSmith@somenet.foo>
|
||||
Received: from osiris ([127.0.0.1])
|
||||
by OSIRIS
|
||||
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
|
||||
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
|
||||
In-Reply-To: <redmine.issue-2.20060719210421@osiris>
|
||||
From: "John Smith" <JSmith@somenet.foo>
|
||||
To: <redmine@somenet.foo>
|
||||
Subject: Re: update to issue 2
|
||||
Date: Sun, 22 Jun 2008 12:28:07 +0200
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain;
|
||||
format=flowed;
|
||||
charset="iso-8859-1";
|
||||
reply-type=original
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Priority: 3
|
||||
X-MSMail-Priority: Normal
|
||||
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
|
||||
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
|
||||
|
||||
An update to the issue by the sender.
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas imperdiet
|
||||
turpis et odio. Integer eget pede vel dolor euismod varius. Phasellus
|
||||
blandit eleifend augue. Nulla facilisi. Duis id diam. Class aptent taciti
|
||||
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In
|
||||
in urna sed tellus aliquet lobortis. Morbi scelerisque tortor in dolor. Cras
|
||||
sagittis odio eu lacus. Aliquam sem tortor, consequat sit amet, vestibulum
|
||||
id, iaculis at, lectus. Fusce tortor libero, congue ut, euismod nec, luctus
|
||||
eget, eros. Pellentesque tortor enim, feugiat in, dignissim eget, tristique
|
||||
sed, mauris --- Pellentesque habitant morbi tristique senectus et netus et
|
||||
malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
|
||||
platea dictumst.
|
||||
|
||||
>> > --- Reply above. Do not remove this line. ---
|
||||
>> >
|
||||
>> > Issue #6779 has been updated by Eric Davis.
|
||||
>> >
|
||||
>> > Subject changed from Projects with JSON to Project JSON API
|
||||
>> > Status changed from New to Assigned
|
||||
>> > Assignee set to Eric Davis
|
||||
>> > Priority changed from Low to Normal
|
||||
>> > Estimated time deleted (1.00)
|
||||
>> >
|
||||
>> > Looks like the JSON api for projects was missed. I'm going to be
|
||||
>> > reviewing the existing APIs and trying to clean them up over the next
|
||||
>> > few weeks.
|
|
@ -0,0 +1,48 @@
|
|||
Return-Path: <JSmith@somenet.foo>
|
||||
Received: from osiris ([127.0.0.1])
|
||||
by OSIRIS
|
||||
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
|
||||
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
|
||||
In-Reply-To: <redmine.issue-2.20060719210421@osiris>
|
||||
From: "John Smith" <JSmith@somenet.foo>
|
||||
To: <redmine@somenet.foo>
|
||||
Subject: Re: update to issue 2
|
||||
Date: Sun, 22 Jun 2008 12:28:07 +0200
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain;
|
||||
format=flowed;
|
||||
charset="iso-8859-1";
|
||||
reply-type=original
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Priority: 3
|
||||
X-MSMail-Priority: Normal
|
||||
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
|
||||
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
|
||||
|
||||
An update to the issue by the sender.
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas imperdiet
|
||||
turpis et odio. Integer eget pede vel dolor euismod varius. Phasellus
|
||||
blandit eleifend augue. Nulla facilisi. Duis id diam. Class aptent taciti
|
||||
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In
|
||||
in urna sed tellus aliquet lobortis. Morbi scelerisque tortor in dolor. Cras
|
||||
sagittis odio eu lacus. Aliquam sem tortor, consequat sit amet, vestibulum
|
||||
id, iaculis at, lectus. Fusce tortor libero, congue ut, euismod nec, luctus
|
||||
eget, eros. Pellentesque tortor enim, feugiat in, dignissim eget, tristique
|
||||
sed, mauris --- Pellentesque habitant morbi tristique senectus et netus et
|
||||
malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
|
||||
platea dictumst.
|
||||
|
||||
> --- Reply above. Do not remove this line. ---
|
||||
>
|
||||
> Issue #6779 has been updated by Eric Davis.
|
||||
>
|
||||
> Subject changed from Projects with JSON to Project JSON API
|
||||
> Status changed from New to Assigned
|
||||
> Assignee set to Eric Davis
|
||||
> Priority changed from Low to Normal
|
||||
> Estimated time deleted (1.00)
|
||||
>
|
||||
> Looks like the JSON api for projects was missed. I'm going to be
|
||||
> reviewing the existing APIs and trying to clean them up over the next
|
||||
> few weeks.
|
|
@ -335,6 +335,38 @@ class MailHandlerTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
context "with a single quoted reply (e.g. reply to a Redmine email notification)" do
|
||||
setup do
|
||||
Setting.mail_handler_body_delimiters = '--- Reply above. Do not remove this line. ---'
|
||||
end
|
||||
|
||||
should "truncate the email at the delimiter with the quoted reply symbols (>)" do
|
||||
journal = submit_email('issue_update_with_quoted_reply_above.eml')
|
||||
assert journal.is_a?(Journal)
|
||||
assert journal.notes.include?('An update to the issue by the sender.')
|
||||
assert !journal.notes.match(Regexp.escape("--- Reply above. Do not remove this line. ---"))
|
||||
assert !journal.notes.include?('Looks like the JSON api for projects was missed.')
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context "with multiple quoted replies (e.g. reply to a reply of a Redmine email notification)" do
|
||||
setup do
|
||||
Setting.mail_handler_body_delimiters = '--- Reply above. Do not remove this line. ---'
|
||||
end
|
||||
|
||||
should "truncate the email at the delimiter with the quoted reply symbols (>)" do
|
||||
journal = submit_email('issue_update_with_multiple_quoted_reply_above.eml')
|
||||
assert journal.is_a?(Journal)
|
||||
assert journal.notes.include?('An update to the issue by the sender.')
|
||||
assert !journal.notes.match(Regexp.escape("--- Reply above. Do not remove this line. ---"))
|
||||
assert !journal.notes.include?('Looks like the JSON api for projects was missed.')
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context "with multiple strings" do
|
||||
setup do
|
||||
Setting.mail_handler_body_delimiters = "---\nBREAK"
|
||||
|
|
Loading…
Reference in New Issue