You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/04/03 10:03:10 UTC

[24/24] james-project git commit: JAMES-2361 send the right Content-Type for MDN

JAMES-2361 send the right Content-Type for MDN


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

Branch: refs/heads/master
Commit: de8f7b2f42e46619f4e61af1ebbf7d25189cac92
Parents: b1fb022
Author: Matthieu Baechler <ma...@apache.org>
Authored: Tue Mar 27 17:36:27 2018 +0200
Committer: benwa <bt...@linagora.com>
Committed: Tue Apr 3 17:01:39 2018 +0700

----------------------------------------------------------------------
 mdn/pom.xml                                     |  4 +++
 mdn/src/main/java/org/apache/james/mdn/MDN.java |  4 ++-
 .../test/java/org/apache/james/mdn/MDNTest.java | 33 ++++++++++++++++++++
 3 files changed, 40 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/de8f7b2f/mdn/pom.xml
----------------------------------------------------------------------
diff --git a/mdn/pom.xml b/mdn/pom.xml
index 0c9a3bd..68e155e 100644
--- a/mdn/pom.xml
+++ b/mdn/pom.xml
@@ -42,6 +42,10 @@
             <artifactId>james-server-util-java8</artifactId>
         </dependency>
         <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>javax-mail-extension</artifactId>
+        </dependency>
+        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/de8f7b2f/mdn/src/main/java/org/apache/james/mdn/MDN.java
----------------------------------------------------------------------
diff --git a/mdn/src/main/java/org/apache/james/mdn/MDN.java b/mdn/src/main/java/org/apache/james/mdn/MDN.java
index 9b7b22c..1e4e542 100644
--- a/mdn/src/main/java/org/apache/james/mdn/MDN.java
+++ b/mdn/src/main/java/org/apache/james/mdn/MDN.java
@@ -31,6 +31,7 @@ import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
+import org.apache.james.javax.MimeMultipartReport;
 import org.apache.james.mime4j.Charsets;
 import org.apache.james.mime4j.dom.Message;
 import org.apache.james.mime4j.dom.Multipart;
@@ -93,8 +94,9 @@ public class MDN {
     }
 
     public MimeMultipart asMultipart() throws MessagingException {
-        MimeMultipart multipart = new MimeMultipart();
+        MimeMultipartReport multipart = new MimeMultipartReport();
         multipart.setSubType(REPORT_SUB_TYPE);
+        multipart.setReportType("disposition-notification");
         multipart.addBodyPart(computeHumanReadablePart());
         multipart.addBodyPart(computeReportPart());
         // The optional third part, the original message is omitted.

http://git-wip-us.apache.org/repos/asf/james-project/blob/de8f7b2f/mdn/src/test/java/org/apache/james/mdn/MDNTest.java
----------------------------------------------------------------------
diff --git a/mdn/src/test/java/org/apache/james/mdn/MDNTest.java b/mdn/src/test/java/org/apache/james/mdn/MDNTest.java
index 15aab74..6decac0 100644
--- a/mdn/src/test/java/org/apache/james/mdn/MDNTest.java
+++ b/mdn/src/test/java/org/apache/james/mdn/MDNTest.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.ByteArrayOutputStream;
 import java.nio.charset.StandardCharsets;
+import java.util.regex.Pattern;
 
 import javax.mail.internet.MimeMessage;
 
@@ -32,6 +33,7 @@ import org.apache.james.mdn.sending.mode.DispositionSendingMode;
 import org.apache.james.mdn.type.DispositionType;
 import org.apache.james.mime4j.dom.Message;
 import org.apache.james.mime4j.message.DefaultMessageWriter;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -59,6 +61,22 @@ public class MDNTest {
     }
 
     @Test
+    public void asMimeMessageShouldGenerateExpectedContentType() throws Exception {
+        MimeMessage mimeMessage = MDN.builder()
+            .humanReadableText("Explanation")
+            .report(MINIMAL_REPORT)
+            .build()
+            .asMimeMessage();
+
+        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+        mimeMessage.writeTo(byteArrayOutputStream);
+
+        assertThat(new String(byteArrayOutputStream.toByteArray(), StandardCharsets.UTF_8))
+            .containsPattern(
+                Pattern.compile("Content-Type: multipart/report;.*report-type=disposition-notification", Pattern.DOTALL));
+    }
+
+    @Test
     public void asMimeMessageShouldComportExplanationPartAndReportPart() throws Exception {
         MimeMessage mimeMessage = MDN.builder()
             .humanReadableText("Explanation")
@@ -192,6 +210,21 @@ public class MDNTest {
             "Disposition: automatic-action/MDN-sent-automatically;deleted");
     }
 
+
+    @Ignore("Content-Type Parameters are not supported by mime4j")
+    @Test
+    public void mime4JMessageExportShouldGenerateExpectedContentType() throws Exception {
+        Message message = MDN.builder()
+            .humanReadableText("RFCs are not funny")
+            .report(MINIMAL_REPORT)
+            .build()
+            .asMime4JMessageBuilder()
+            .build();
+
+        assertThat(asString(message))
+            .containsPattern(Pattern.compile("Content-Type: multipart/report;.*report-type=disposition-notification", Pattern.DOTALL));
+    }
+
     private String asString(Message message) throws Exception {
         return new String(DefaultMessageWriter.asBytes(message), StandardCharsets.UTF_8);
     }


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