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 <[email protected]> Authored: Thu Jun 14 11:50:42 2018 +0700 Committer: benwa <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
