@@ -0,0 +1,13 | |||
|
1 | Message-ID: <4974C93E.3070005@somenet.foo> | |
|
2 | Date: Mon, 19 Jan 2009 19:41:02 +0100 | |
|
3 | From: "John Smith" <jsmith@somenet.foo> | |
|
4 | User-Agent: Thunderbird 2.0.0.19 (Windows/20081209) | |
|
5 | MIME-Version: 1.0 | |
|
6 | To: redmine@somenet.foo | |
|
7 | Subject: Re: [eCookbook - Help board - msg2] Reply to the first post | |
|
8 | Content-Type: text/plain; charset=UTF-8; format=flowed | |
|
9 | Content-Transfer-Encoding: 7bit | |
|
10 | ||
|
11 | This is a reply to a forum message. | |
|
12 | ||
|
13 |
@@ -55,6 +55,7 class MailHandler < ActionMailer::Base | |||
|
55 | 55 | |
|
56 | 56 | MESSAGE_ID_RE = %r{^<redmine\.([a-z0-9_]+)\-(\d+)\.\d+@} |
|
57 | 57 | ISSUE_REPLY_SUBJECT_RE = %r{\[[^\]]+#(\d+)\]} |
|
58 | MESSAGE_REPLY_SUBJECT_RE = %r{\[[^\]]+msg(\d+)\]} | |
|
58 | 59 | |
|
59 | 60 | def dispatch |
|
60 | 61 | headers = [email.in_reply_to, email.references].flatten.compact |
@@ -67,8 +68,9 class MailHandler < ActionMailer::Base | |||
|
67 | 68 | # ignoring it |
|
68 | 69 | end |
|
69 | 70 | elsif m = email.subject.match(ISSUE_REPLY_SUBJECT_RE) |
|
70 | # for compatibility | |
|
71 | 71 | receive_issue_reply(m[1].to_i) |
|
72 | elsif m = email.subject.match(MESSAGE_REPLY_SUBJECT_RE) | |
|
73 | receive_message_reply(m[1].to_i) | |
|
72 | 74 | else |
|
73 | 75 | receive_issue |
|
74 | 76 | end |
@@ -164,7 +166,8 class MailHandler < ActionMailer::Base | |||
|
164 | 166 | if message |
|
165 | 167 | message = message.root |
|
166 | 168 | if user.allowed_to?(:add_messages, message.project) && !message.locked? |
|
167 |
reply = Message.new(:subject => email.subject, |
|
|
169 | reply = Message.new(:subject => email.subject.gsub(%r{^.*msg\d+\]}, '').strip, | |
|
170 | :content => plain_text_body) | |
|
168 | 171 | reply.author = user |
|
169 | 172 | reply.board = message.board |
|
170 | 173 | message.children << reply |
@@ -111,7 +111,7 class Mailer < ActionMailer::Base | |||
|
111 | 111 | message_id message |
|
112 | 112 | references message.parent unless message.parent.nil? |
|
113 | 113 | recipients(recipients) |
|
114 | subject "[#{message.board.project.name} - #{message.board.name}] #{message.subject}" | |
|
114 | subject "[#{message.board.project.name} - #{message.board.name} - msg#{message.root.id}] #{message.subject}" | |
|
115 | 115 | body :message => message, |
|
116 | 116 | :message_url => url_for(:controller => 'messages', :action => 'show', :board_id => message.board_id, :id => message.root) |
|
117 | 117 | end |
@@ -153,6 +153,15 class MailHandlerTest < Test::Unit::TestCase | |||
|
153 | 153 | assert_equal Message.find(1), m.parent |
|
154 | 154 | end |
|
155 | 155 | |
|
156 | def test_reply_to_a_message_by_subject | |
|
157 | m = submit_email('message_reply_by_subject.eml') | |
|
158 | assert m.is_a?(Message) | |
|
159 | assert !m.new_record? | |
|
160 | m.reload | |
|
161 | assert_equal 'Reply to the first post', m.subject | |
|
162 | assert_equal Message.find(1), m.parent | |
|
163 | end | |
|
164 | ||
|
156 | 165 | def test_should_strip_tags_of_html_only_emails |
|
157 | 166 | issue = submit_email('ticket_html_only.eml', :issue => {:project => 'ecookbook'}) |
|
158 | 167 | assert issue.is_a?(Issue) |
General Comments 0
You need to be logged in to leave comments.
Login now