Repository: james-project
Updated Branches:
  refs/heads/master 3c15732e7 -> 3c8c176a0


JAMES-1814 Decoding filename in received messages


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/3403ca18
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3403ca18
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3403ca18

Branch: refs/heads/master
Commit: 3403ca18234402098224390fd46eefd580e16cee
Parents: 986d15f
Author: Laura Royet <lro...@linagora.com>
Authored: Wed Sep 21 12:11:59 2016 +0200
Committer: Laura Royet <lro...@linagora.com>
Committed: Wed Sep 21 12:11:59 2016 +0200

----------------------------------------------------------------------
 mailbox/store/pom.xml                           |   5 +
 .../store/mail/model/impl/MessageParser.java    |  11 +-
 .../mail/model/impl/MessageParserTest.java      |   8 +
 .../messageWithNonASCIIFilenameAttachment.eml   | 234 +++++++++++++++++++
 ...331\206\330\247\330\265\331\210\330\261.odt" | Bin 0 -> 10675 bytes
 5 files changed, 257 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/3403ca18/mailbox/store/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/store/pom.xml b/mailbox/store/pom.xml
index fd4993a..60ebc49 100644
--- a/mailbox/store/pom.xml
+++ b/mailbox/store/pom.xml
@@ -130,5 +130,10 @@
             <version>${assertj-1.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-guava</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/james-project/blob/3403ca18/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
index 1588302..6a80385 100644
--- 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
+++ 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
@@ -28,6 +28,8 @@ import org.apache.james.mailbox.model.Attachment;
 import org.apache.james.mailbox.model.Cid;
 import org.apache.james.mailbox.model.MessageAttachment;
 import org.apache.james.mime4j.MimeException;
+import org.apache.james.mime4j.codec.DecodeMonitor;
+import org.apache.james.mime4j.codec.DecoderUtil;
 import org.apache.james.mime4j.dom.Body;
 import org.apache.james.mime4j.dom.Entity;
 import org.apache.james.mime4j.dom.MessageWriter;
@@ -129,7 +131,14 @@ public class MessageParser {
         return contentTypeField.transform(new Function<ContentTypeField, 
Optional<String>>() {
             @Override
             public Optional<String> apply(ContentTypeField field) {
-                return Optional.fromNullable(field.getParameter("name"));
+                return Optional.fromNullable(field.getParameter("name"))
+                  .transform(
+                          new Function<String, String>() {
+                              public String apply(String input) {
+                                  DecodeMonitor monitor = null;
+                                  return DecoderUtil.decodeEncodedWords(input, 
monitor);
+                              }
+                          });
             }
         }).or(Optional.<String> absent());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3403ca18/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/MessageParserTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/MessageParserTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/MessageParserTest.java
index 6eb0584..02aeaa1 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/MessageParserTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/MessageParserTest.java
@@ -20,6 +20,7 @@
 package org.apache.james.mailbox.store.mail.model.impl;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.guava.api.Assertions.assertThat;
 
 import java.util.List;
 
@@ -64,6 +65,13 @@ public class MessageParserTest {
     }
 
     @Test
+    public void 
getAttachmentsShouldRetrieveAttachmentNameWhenOneContainingNonASCIICharacters() 
throws Exception {
+        List<MessageAttachment> attachments = 
testee.retrieveAttachments(ClassLoader.getSystemResourceAsStream("eml/messageWithNonASCIIFilenameAttachment.eml"));
+        assertThat(attachments).hasSize(1);
+        
assertThat(attachments.get(0).getName()).contains("ديناصور.odt");
+    }
+
+    @Test
     public void getAttachmentsShouldRetrieveEmptyNameWhenNone() throws 
Exception {
         List<MessageAttachment> attachments = 
testee.retrieveAttachments(ClassLoader.getSystemResourceAsStream("eml/oneAttachmentWithoutName.eml"));
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3403ca18/mailbox/store/src/test/resources/eml/messageWithNonASCIIFilenameAttachment.eml
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/resources/eml/messageWithNonASCIIFilenameAttachment.eml
 
b/mailbox/store/src/test/resources/eml/messageWithNonASCIIFilenameAttachment.eml
new file mode 100644
index 0000000..0864178
--- /dev/null
+++ 
b/mailbox/store/src/test/resources/eml/messageWithNonASCIIFilenameAttachment.eml
@@ -0,0 +1,234 @@
+Return-Path: <lro...@linagora.com>
+Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
+        by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
+        Fri, 26 Aug 2016 10:00:36 +0200
+X-Sieve: CMU Sieve 2.2
+Received: from [10.69.0.146] (mne69-10-88-173-78-196.fbx.proxad.net 
[88.173.78.196])
+       (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
+       (No client certificate requested)
+       by alderaan.linagora.com (Postfix) with ESMTPSA id A863676F
+       for <lro...@linagora.com>; Fri, 26 Aug 2016 10:00:36 +0200 (CEST)
+To: Laura ROYET <lro...@linagora.com>
+From: Laura Royet <lro...@linagora.com>
+Subject: message with non ASCII filename attachment
+Message-ID: <d929964c-032e-ada5-c97d-a048e9a32...@linagora.com>
+Date: Fri, 26 Aug 2016 10:00:35 +0200
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
+ Thunderbird/45.2.0
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="------------9F1006EBC7F5F7758497FD08"
+
+This is a multi-part message in MIME format.
+--------------9F1006EBC7F5F7758497FD08
+Content-Type: text/plain; charset=utf-8; format=flowed
+Content-Transfer-Encoding: 7bit
+
+
+
+--------------9F1006EBC7F5F7758497FD08
+Content-Type: application/vnd.oasis.opendocument.text;
+ name="=?UTF-8?B?2K/ZitmG2KfYtdmI2LEub2R0?="
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment;
+ filename*=utf-8''%D8%AF%D9%8A%D9%86%D8%A7%D8%B5%D9%88%D8%B1%2E%6F%64%74
+
+UEsDBBQAAAgAAOB8GElexjIMJwAAACcAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQu
+b2FzaXMub3BlbmRvY3VtZW50LnRleHRQSwMEFAAACAAA4HwYSQ5gBad3CQAAdwkAABgAAABU
+aHVtYm5haWxzL3RodW1ibmFpbC5wbmeJUE5HDQoaCgAAAA1JSERSAAAAtQAAAQAIAgAAAHpB
+oIwAAAk+SURBVHic7dvJT1TpAobxYihmmSQCojIICYao6Q6ioGHlgo2b3nWivei9/1ivOr2Q
+hYZIolFDwAQktCIgQeIEMg8y3pf65KSA229fSuWyeH7pVE6dOnWw+3vqO+cr6czt7e0Y8A8y
+/99/ABxr9AGHPuDQBxz6gEMfcOgDDn3AoQ849AGHPuDQBxz6gEMfcOgDzuH62N7eTktL0+PW
+1paeajs9PT38BknYH21HT8MBevqvpw3nDE/1Lj0N7wpPwwn9efDdHa6PMDwhiyiUsJH86lZC
+OCaMejhs36j/048ISWVkZMR244iKTH5XyOV/6Q8pS2X+WFxcfPbs2fr6emVl5eXLl2dmZoqL
+i7V/aWlpbGwsLy9PT0tLS3XA+Ph4fX19eNe+CSB5RMP+d+/eZWVlLS8vT09PV1dX9/f3l5WV
+6dWNjY2mpqZ4PL4vqYPnxHeXyv1HQYI+369evdLgffnyRSPa0dHx+vXrBw8etLW1jYyMbG5u
+ak9vb69eVSjDw8O1tbXNzc3d3d1VVVXa+eHDhxMnTugk8/Pzubm5V69effLkifbk5OQohcHB
+wUuXLn3+/Pn9+/eaIVZWVu7du3fx4sWJiYn8/HxVWFRUpB+hR/24MFd99/80iKVwfQmDkZm5
+80ZNEm/evNEY63Fubk6jW15ePjU1pWlDB+iTrblEZWhi0B6Nuvp4+vSphvn06dMaeA32yZMn
+dU7NGaOjo6urq3qLJiftqaio0AGrCXqqnrTx4sWLoaGh8+fP6+Saqx49enTz5s0f858FX6Vy
+fdHGuXPntK1HzR8qpqWlRa3oo3/9+nUN3rVr11SDjlQQ4ZOt0S0sLNTGnTt3NFuEAhSWDtPs
+Es5569Yt7dHcc+bMGU0SKqYyQS+pvPb2dr165cqVcBOjnfop2h/be6nC95XK/anoziD5tjR0
+o4uOxjXaL4og+QBta7zDU10ako+M7mR1WQkLnwsXLoSXwnsPniraoI8f59D3H9ESNxra5CXJ
+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
+yMsQLAkpEpWMarVyUEm6+kDA1dkJXScTWuIn3f975cOfUEsHCFFmdozQCAAA/TIAAFBLAwQU
+AAgICADgfBhJAAAAAAAAAAAAAAAADAAAAG1hbmlmZXN0LnJkZs2TzW6DMBCE7zyFZc7YQC8F
+BXIoyrlqn8A1hlgFL/KaEt6+jpNWUaSq6p/U465GM9+OtJvtYRzIi7KowVQ0Yyklykhotekr
+OrsuuaXbOtrYtisfmh3xaoOlnyq6d24qOV+WhS03DGzPs6IoeJrzPE+8IsHVOHFIDMa0jggJ
+Ho1CafXkfBo5zuIJZldRdOugkHn3ID2L3TqpoLIKYbZSvYe2IJGBQI0JTMqEdIMcuk5LxTOW
+81E5waHt4sdgvdODojxg8CuOz9jeiAym5V7gvbDuXIPffJVoeu5jenXTxfHfI5RgnDLuT+q7
+O3n/5/4uz/8Z4q+0dkRsQM6jZ/qQ57TyH1VHr1BLBwi092jSBQEAAIMDAABQSwMEFAAACAAA
+4HwYSQAAAAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9uczIvdG9vbHBhbmVsL1BLAwQUAAAI
+AADgfBhJAAAAAAAAAAAAAAAAHAAAAENvbmZpZ3VyYXRpb25zMi9wcm9ncmVzc2Jhci9QSwME
+FAAICAgA4HwYSQAAAAAAAAAAAAAAACcAAABDb25maWd1cmF0aW9uczIvYWNjZWxlcmF0b3Iv
+Y3VycmVudC54bWwDAFBLBwgAAAAAAgAAAAAAAABQSwMEFAAACAAA4HwYSQAAAAAAAAAAAAAA
+ABgAAABDb25maWd1cmF0aW9uczIvZmxvYXRlci9QSwMEFAAACAAA4HwYSQAAAAAAAAAAAAAA
+AB8AAABDb25maWd1cmF0aW9uczIvaW1hZ2VzL0JpdG1hcHMvUEsDBBQAAAgAAOB8GEkAAAAA
+AAAAAAAAAAAYAAAAQ29uZmlndXJhdGlvbnMyL3Rvb2xiYXIvUEsDBBQAAAgAAOB8GEkAAAAA
+AAAAAAAAAAAYAAAAQ29uZmlndXJhdGlvbnMyL21lbnViYXIvUEsDBBQAAAgAAOB8GEkAAAAA
+AAAAAAAAAAAaAAAAQ29uZmlndXJhdGlvbnMyL3N0YXR1c2Jhci9QSwMEFAAACAAA4HwYSQAA
+AAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9uczIvcG9wdXBtZW51L1BLAwQUAAgICADgfBhJ
+AAAAAAAAAAAAAAAAFQAAAE1FVEEtSU5GL21hbmlmZXN0LnhtbLWUwW7DIAyG732KiOsU2Hqa
+UNIeKu0JugdgxEmRwERgqvbtR6q1yTRlarTuZmPz/58wUG1PzhZHCNF4rNkLf2YFoPaNwa5m
+7/u38pVtN6vKKTQtRJLXoMj7MN7SmqWA0qtookTlIErS0veAjdfJAZL83i8vTrdsArBmm1Ux
++rXGQpn3h/PY3SZry17RoWZiTmRcdtAYVdK5h5qpvrdGK8pt4ogNvwDzKScnOBETSxj2h+Q+
+UBkbBV1D3mM3w2Cc6kAM9UUu2iMNfPkcZ4QHcjGUF+lGIMrDjg8XdkDq8bR0tvAPrF9rPDTt
+HVcndz0t9th5bE2XwkUiroXSGizk1AehUwi/D/dvXnc+h5hwQODJcD1VGMwr8eMP2HwCUEsH
+CB2A81kcAQAAPgQAAFBLAQIUABQAAAgAAOB8GElexjIMJwAAACcAAAAIAAAAAAAAAAAAAAAA
+AAAAAABtaW1ldHlwZVBLAQIUABQAAAgAAOB8GEkOYAWndwkAAHcJAAAYAAAAAAAAAAAAAAAA
+AE0AAABUaHVtYm5haWxzL3RodW1ibmFpbC5wbmdQSwECFAAUAAgICADgfBhJ+ay9rfoEAADL
+EwAACwAAAAAAAAAAAAAAAAD6CQAAY29udGVudC54bWxQSwECFAAUAAgICADgfBhJkUI+C+0F
+AABvJwAADAAAAAAAAAAAAAAAAAAtDwAAc2V0dGluZ3MueG1sUEsBAhQAFAAICAgA4HwYScPE
+aGDlAQAALQQAAAgAAAAAAAAAAAAAAAAAVBUAAG1ldGEueG1sUEsBAhQAFAAICAgA4HwYSVFm
+dozQCAAA/TIAAAoAAAAAAAAAAAAAAAAAbxcAAHN0eWxlcy54bWxQSwECFAAUAAgICADgfBhJ
+tPdo0gUBAACDAwAADAAAAAAAAAAAAAAAAAB3IAAAbWFuaWZlc3QucmRmUEsBAhQAFAAACAAA
+4HwYSQAAAAAAAAAAAAAAABoAAAAAAAAAAAAAAAAAtiEAAENvbmZpZ3VyYXRpb25zMi90b29s
+cGFuZWwvUEsBAhQAFAAACAAA4HwYSQAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAA7iEAAENv
+bmZpZ3VyYXRpb25zMi9wcm9ncmVzc2Jhci9QSwECFAAUAAgICADgfBhJAAAAAAIAAAAAAAAA
+JwAAAAAAAAAAAAAAAAAoIgAAQ29uZmlndXJhdGlvbnMyL2FjY2VsZXJhdG9yL2N1cnJlbnQu
+eG1sUEsBAhQAFAAACAAA4HwYSQAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAfyIAAENvbmZp
+Z3VyYXRpb25zMi9mbG9hdGVyL1BLAQIUABQAAAgAAOB8GEkAAAAAAAAAAAAAAAAfAAAAAAAA
+AAAAAAAAALUiAABDb25maWd1cmF0aW9uczIvaW1hZ2VzL0JpdG1hcHMvUEsBAhQAFAAACAAA
+4HwYSQAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAA8iIAAENvbmZpZ3VyYXRpb25zMi90b29s
+YmFyL1BLAQIUABQAAAgAAOB8GEkAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAACgjAABDb25m
+aWd1cmF0aW9uczIvbWVudWJhci9QSwECFAAUAAAIAADgfBhJAAAAAAAAAAAAAAAAGgAAAAAA
+AAAAAAAAAABeIwAAQ29uZmlndXJhdGlvbnMyL3N0YXR1c2Jhci9QSwECFAAUAAAIAADgfBhJ
+AAAAAAAAAAAAAAAAGgAAAAAAAAAAAAAAAACWIwAAQ29uZmlndXJhdGlvbnMyL3BvcHVwbWVu
+dS9QSwECFAAUAAgICADgfBhJHYDzWRwBAAA+BAAAFQAAAAAAAAAAAAAAAADOIwAATUVUQS1J
+TkYvbWFuaWZlc3QueG1sUEsFBgAAAAARABEAcAQAAC0lAAAAAA==
+--------------9F1006EBC7F5F7758497FD08--

http://git-wip-us.apache.org/repos/asf/james-project/blob/3403ca18/"mailbox/store/src/test/resources/eml/\330\257\331\212\331\206\330\247\330\265\331\210\330\261.odt";
----------------------------------------------------------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to