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/06/19 09:53:50 UTC

[4/8] james-project git commit: JAMES-2429 MimeMessageBuilder should support embedded messages

JAMES-2429 MimeMessageBuilder should support embedded 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/9cc86feb
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/9cc86feb
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/9cc86feb

Branch: refs/heads/master
Commit: 9cc86feb7b16e12c5e76c7b0337b8b2f33e26972
Parents: c04fd75
Author: benwa <bt...@linagora.com>
Authored: Thu Jun 14 11:50:42 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jun 19 16:52:40 2018 +0700

----------------------------------------------------------------------
 core/pom.xml                                    | 11 +++++++++++
 .../james/core/builder/MimeMessageBuilder.java  | 11 +++++++++++
 .../core/builder/MimeMessageBuilderTest.java    | 20 ++++++++++++++++++++
 3 files changed, 42 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/9cc86feb/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 3d70436..d096b67 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -35,6 +35,17 @@
     <dependencies>
         <dependency>
             <groupId>${project.groupId}</groupId>
+            <artifactId>javax-mail-extension</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>javax-mail-extension</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
             <artifactId>james-server-util-java8</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/9cc86feb/core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java b/core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java
index 5a33892..254f17b 100644
--- a/core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java
+++ b/core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java
@@ -98,6 +98,17 @@ public class MimeMessageBuilder {
             return this;
         }
 
+        public MultipartBuilder addBody(MimeMessageBuilder builder) throws IOException, MessagingException {
+            return addBody(builder.build());
+        }
+
+        public MultipartBuilder addBody(MimeMessage mimeMessage) throws IOException, MessagingException {
+            MimeBodyPart mimeBodyPart = new MimeBodyPart();
+            mimeBodyPart.setContent(mimeMessage, "message/rfc822");
+            this.bodyParts.add(mimeBodyPart);
+            return this;
+        }
+
         public MultipartBuilder addBodies(BodyPart... bodyParts) {
             this.bodyParts.addAll(Arrays.asList(bodyParts));
             return this;

http://git-wip-us.apache.org/repos/asf/james-project/blob/9cc86feb/core/src/test/java/org/apache/james/core/builder/MimeMessageBuilderTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/james/core/builder/MimeMessageBuilderTest.java b/core/src/test/java/org/apache/james/core/builder/MimeMessageBuilderTest.java
index 3b401a5..62b8c56 100644
--- a/core/src/test/java/org/apache/james/core/builder/MimeMessageBuilderTest.java
+++ b/core/src/test/java/org/apache/james/core/builder/MimeMessageBuilderTest.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.util.MimeMessageUtil;
 import org.junit.Test;
 
 public class MimeMessageBuilderTest {
@@ -62,6 +63,24 @@ public class MimeMessageBuilderTest {
     }
 
     @Test
+    public void embeddedMessagesShouldBeSupported() throws Exception {
+        MimeMessage embeddedMimeMessage = MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("A unicorn eat popcorn")
+            .setText("As studies demonstrated unicorns eats cereals.")
+            .build();
+        MimeMessage mimeMessage = MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("Internet is a strange place")
+            .setContent(MimeMessageBuilder.multipartBuilder()
+                .addBody(MimeMessageBuilder.bodyPartBuilder()
+                    .data("The following embedded message is sooo funny!"))
+                .addBody(embeddedMimeMessage))
+            .build();
+
+        assertThat(MimeMessageUtil.asString(mimeMessage))
+            .contains(MimeMessageUtil.asString(embeddedMimeMessage));
+    }
+
+    @Test
     public void buildShouldAllowToSpecifyMultipartSubtype() throws Exception {
         MimeMessage mimeMessage = MimeMessageBuilder.mimeMessageBuilder()
             .setContent(MimeMessageBuilder.multipartBuilder()
@@ -74,4 +93,5 @@ public class MimeMessageBuilderTest {
             .startsWith("multipart/alternative");
     }
 
+
 }
\ No newline at end of file


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