Selaa lähdekoodia

Empty email attachments are imported to Redmine, creating broken DB records (#27885).

Patch by Felix Schäfer.

git-svn-id: http://svn.redmine.org/redmine/trunk@17147 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/4.0.0
Jean-Philippe Lang 6 vuotta sitten
vanhempi
commit
4e6b54e33e

+ 1
- 0
app/models/mail_handler.rb Näytä tiedosto

@@ -296,6 +296,7 @@ class MailHandler < ActionMailer::Base
if email.attachments && email.attachments.any?
email.attachments.each do |attachment|
next unless accept_attachment?(attachment)
next unless attachment.body.decoded.size > 0
obj.attachments << Attachment.create(:container => obj,
:file => attachment.body.decoded,
:filename => attachment.filename,

+ 58
- 0
test/fixtures/mail_handler/ticket_with_empty_attachment.eml Näytä tiedosto

@@ -0,0 +1,58 @@
Return-Path: <jsmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sat, 21 Jun 2008 15:53:25 +0200
Message-ID: <002301c8d3a6$2cdf6950$0a00a8c0@osiris>
From: "John Smith" <jsmith@somenet.foo>
To: <redmine@somenet.foo>
Subject: Ticket created by email with attachment
Date: Sat, 21 Jun 2008 15:53:25 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_001F_01C8D3B6.F05C5270"
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

This is a multi-part message in MIME format.

------=_NextPart_000_001F_01C8D3B6.F05C5270
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0020_01C8D3B6.F05C5270"


------=_NextPart_001_0020_01C8D3B6.F05C5270
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

This is a new ticket with attachments
------=_NextPart_001_0020_01C8D3B6.F05C5270
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2900.2883" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>This is&nbsp; a new ticket with=20
attachments</FONT></DIV></BODY></HTML>

------=_NextPart_001_0020_01C8D3B6.F05C5270--

------=_NextPart_000_001F_01C8D3B6.F05C5270
Content-Type: application/json;
name="response.json"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="response.json"


------=_NextPart_000_001F_01C8D3B6.F05C5270--


+ 8
- 0
test/unit/mail_handler_test.rb Näytä tiedosto

@@ -631,6 +631,14 @@ class MailHandlerTest < ActiveSupport::TestCase
assert_equal content, File.read(attachment.diskfile).force_encoding('CP852')
end

def test_empty_attachment_should_not_be_imported
issue = submit_email(
'ticket_with_empty_attachment.eml',
issue: { project: 'ecookbook' }
)
assert_equal 0, issue.attachments.size
end

def test_multiple_inline_text_parts_should_be_appended_to_issue_description
issue = submit_email('multiple_text_parts.eml', :issue => {:project => 'ecookbook'})
assert_include 'first', issue.description

Loading…
Peruuta
Tallenna