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)
|
def cleanup_body(body)
|
||||||
delimiters = Setting.mail_handler_body_delimiters.to_s.split(/[\r\n]+/).reject(&:blank?).map {|s| Regexp.escape(s)}
|
delimiters = Setting.mail_handler_body_delimiters.to_s.split(/[\r\n]+/).reject(&:blank?).map {|s| Regexp.escape(s)}
|
||||||
unless delimiters.empty?
|
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, '')
|
body = body.gsub(regex, '')
|
||||||
end
|
end
|
||||||
body.strip
|
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
|
||||||
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
|
context "with multiple strings" do
|
||||||
setup do
|
setup do
|
||||||
Setting.mail_handler_body_delimiters = "---\nBREAK"
|
Setting.mail_handler_body_delimiters = "---\nBREAK"
|
||||||
|
|
Loading…
Reference in New Issue