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