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/01/22 00:56:13 UTC

[4/5] james-project git commit: JAMES-2305 Limit uses of MimeMessage constructor throughout the code base

JAMES-2305 Limit uses of MimeMessage constructor throughout the code base


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

Branch: refs/heads/master
Commit: 7244396c87f7d025de6c1a18a48d12e328ab0d65
Parents: f9b0864
Author: benwa <bt...@linagora.com>
Authored: Tue Jan 16 15:03:17 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 22 07:47:52 2018 +0700

----------------------------------------------------------------------
 .../AutomaticallySentMailDetectorImplTest.java  | 79 ++++++++---------
 .../org/apache/mailet/base/test/FakeMail.java   | 12 +--
 .../mailet/base/test/MimeMessageUtil.java       |  4 +
 .../transport/mailets/ContactExtractorTest.java |  6 +-
 .../james/transport/mailets/LogMessageTest.java | 26 +++---
 .../transport/mailets/ReplaceContentTest.java   | 62 +++++--------
 .../transport/mailets/SetMailAttributeTest.java | 11 +--
 .../mailets/utils/MimeMessageModifierTest.java  | 13 +--
 .../transport/matchers/HasAttachmentTest.java   |  6 +-
 .../james/transport/matchers/HasHeaderTest.java | 22 ++---
 .../transport/matchers/RelayLimitTest.java      |  6 +-
 .../apache/james/server/core/MailImplTest.java  |  8 +-
 .../core/MimeMessageCopyOnWriteProxyTest.java   | 19 ++--
 .../core/MimeMessageFromSharedStreamTest.java   |  8 +-
 .../james/server/core/MimeMessageTest.java      | 28 +++---
 .../james/transport/mailets/BounceTest.java     | 57 +++++-------
 .../james/transport/mailets/DSNBounceTest.java  | 93 +++++++++-----------
 .../james/transport/mailets/ForwardTest.java    |  9 +-
 .../transport/mailets/NotifyPostmasterTest.java |  9 +-
 .../transport/mailets/NotifySenderTest.java     | 13 +--
 .../RecipientRewriteTableProcessorTest.java     |  5 +-
 .../mailets/RecipientRewriteTableTest.java      |  6 +-
 .../james/transport/mailets/RedirectTest.java   | 54 +++++-------
 .../james/transport/mailets/ResendTest.java     | 23 ++---
 .../redirect/NotifyMailetsMessageTest.java      | 85 +++++++-----------
 .../transport/util/RecipientsUtilsTest.java     | 13 ++-
 .../util/SpecialAddressesUtilsTest.java         | 36 ++++----
 .../james/transport/util/TosUtilsTest.java      | 10 +--
 .../TextCalendarBodyToAttachmentTest.java       | 13 ++-
 .../james/jmap/mailet/VacationReplyTest.java    |  8 +-
 .../utils/MimeMessageBodyGeneratorTest.java     |  5 +-
 31 files changed, 315 insertions(+), 434 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java b/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java
index 864535f..3361c39 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java
@@ -21,7 +21,6 @@ package org.apache.mailet.base;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.io.ByteArrayInputStream;
 import java.util.Collections;
 import java.util.Properties;
 
@@ -34,6 +33,7 @@ import javax.mail.util.ByteArrayDataSource;
 
 import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.base.test.FakeMail;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Test;
 
 public class AutomaticallySentMailDetectorImplTest {
@@ -53,7 +53,8 @@ public class AutomaticallySentMailDetectorImplTest {
             new AutomaticallySentMailDetectorImpl()
                 .isAutomaticallySent(FakeMail.builder()
                     .sender(MailAddressFixture.ANY_AT_JAMES)
-                    .mimeMessage(new MimeMessage(Session.getDefaultInstance(new Properties()), new ByteArrayInputStream("".getBytes())))
+                    .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                        .setText("any"))
                     .build()))
             .isFalse();
     }
@@ -105,47 +106,43 @@ public class AutomaticallySentMailDetectorImplTest {
 
     @Test
     public void listIdShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Id", "any");
         FakeMail fakeMail = FakeMail.builder()
-                .sender("any@any.com")
-                .mimeMessage(message)
-                .build();
+            .sender("any@any.com")
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .addHeader("List-Id", "any"))
+            .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
     }
 
     @Test
     public void listHelpShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Help", "any");
         FakeMail fakeMail = FakeMail.builder()
-                .sender("any@any.com")
-                .mimeMessage(message)
-                .build();
+            .sender("any@any.com")
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .addHeader("List-Help", "any"))
+            .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
     }
 
     @Test
     public void listSubscribeShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Subscribe", "any");
         FakeMail fakeMail = FakeMail.builder()
-                .sender("any@any.com")
-                .mimeMessage(message)
-                .build();
+            .sender("any@any.com")
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .addHeader("List-Subscribe", "any"))
+            .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
     }
 
     @Test
     public void listUnsubscribeShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Unsubscribe", "any");
         FakeMail fakeMail = FakeMail.builder()
                 .sender("any@any.com")
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .addHeader("List-Unsubscribe", "any"))
                 .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
@@ -153,36 +150,35 @@ public class AutomaticallySentMailDetectorImplTest {
 
     @Test
     public void listPostShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Post", "any");
         FakeMail fakeMail = FakeMail.builder()
-                .sender("any@any.com")
-                .mimeMessage(message)
-                .build();
+            .sender("any@any.com")
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .addHeader("List-Post", "any"))
+            .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
     }
 
     @Test
     public void listOwnerShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Owner", "any");
         FakeMail fakeMail = FakeMail.builder()
-                .sender("any@any.com")
-                .mimeMessage(message)
-                .build();
+            .sender("any@any.com")
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .addHeader("List-Owner", "any"))
+            .build();
+
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
     }
 
     @Test
     public void listArchiveShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Archive", "any");
         FakeMail fakeMail = FakeMail.builder()
-                .sender("any@any.com")
-                .mimeMessage(message)
-                .build();
+            .sender("any@any.com")
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .addHeader("List-Archive", "any"))
+            .build();
+
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
     }
@@ -191,7 +187,7 @@ public class AutomaticallySentMailDetectorImplTest {
     public void normalMailShouldNotBeIdentifiedAsMailingList() throws Exception {
         FakeMail fakeMail = FakeMail.builder()
                 .sender("any@any.com")
-                .mimeMessage(new MimeMessage(Session.getDefaultInstance(new Properties())))
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder())
                 .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isFalse();
@@ -200,7 +196,7 @@ public class AutomaticallySentMailDetectorImplTest {
     @Test
     public void isAutoSubmittedShouldNotMatchNonAutoSubmittedMails() throws Exception {
         FakeMail fakeMail = FakeMail.builder()
-                .mimeMessage(new MimeMessage(Session.getDefaultInstance(new Properties())))
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder())
                 .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isAutoSubmitted(fakeMail)).isFalse();
@@ -208,11 +204,10 @@ public class AutomaticallySentMailDetectorImplTest {
 
     @Test
     public void isAutoSubmittedShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("Auto-Submitted", "auto-replied");
         FakeMail fakeMail = FakeMail.builder()
                 .sender("any@any.com")
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .addHeader("Auto-Submitted", "auto-replied"))
                 .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isAutoSubmitted(fakeMail)).isTrue();
@@ -243,7 +238,7 @@ public class AutomaticallySentMailDetectorImplTest {
 
     @Test
     public void isMdnSentAutomaticallyShouldNotFilterManuallySentMdn() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        MimeMessage message = MimeMessageUtil.defaultMimeMessage();
         MimeMultipart multipart = new MimeMultipart();
         MimeBodyPart scriptPart = new MimeBodyPart();
         scriptPart.setDataHandler(
@@ -266,7 +261,7 @@ public class AutomaticallySentMailDetectorImplTest {
 
     @Test
     public void isMdnSentAutomaticallyShouldManageItsMimeType() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        MimeMessage message = MimeMessageUtil.defaultMimeMessage();
         MimeMultipart multipart = new MimeMultipart();
         MimeBodyPart scriptPart = new MimeBodyPart();
         scriptPart.setDataHandler(

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
index 0c71c2b..8de6b12 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
@@ -20,7 +20,6 @@
 
 package org.apache.mailet.base.test;
 
-import java.io.ByteArrayInputStream;
 import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.util.Arrays;
@@ -33,7 +32,6 @@ import java.util.Optional;
 import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.AddressException;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
@@ -69,9 +67,7 @@ public class FakeMail implements Mail, Serializable {
         Properties javamailProperties = new Properties();
         javamailProperties.setProperty("mail.mime.charset", javamailDefaultEncodingCharset);
         return FakeMail.builder()
-                .mimeMessage(new MimeMessage(
-                    Session.getInstance(javamailProperties),
-                    new ByteArrayInputStream(text.getBytes(javaEncodingCharset))))
+                .mimeMessage(MimeMessageUtil.mimeMessageFromBytes((text.getBytes(javaEncodingCharset))))
                 .build();
     }
 
@@ -96,6 +92,10 @@ public class FakeMail implements Mail, Serializable {
                 .build();
     }
 
+    public static FakeMail from(MimeMessageBuilder message) throws MessagingException {
+        return from(message.build());
+    }
+
     public static Builder builder() {
         return new Builder();
     }
@@ -241,7 +241,7 @@ public class FakeMail implements Mail, Serializable {
         private MimeMessage getMimeMessage() throws MessagingException {
             Preconditions.checkState(!(fileName.isPresent() && mimeMessage.isPresent()), "You can not specify a MimeMessage object when you alredy set Content from a file");
             if (fileName.isPresent()) {
-                return new MimeMessage(Session.getInstance(new Properties()), ClassLoader.getSystemResourceAsStream(fileName.get()));
+                return MimeMessageUtil.mimeMessageFromStream(ClassLoader.getSystemResourceAsStream(fileName.get()));
             }
             return mimeMessage.orElse(null);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageUtil.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageUtil.java b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageUtil.java
index e857dea..d81424a 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageUtil.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageUtil.java
@@ -48,4 +48,8 @@ public class MimeMessageUtil {
         return mimeMessageFromStream(new ByteArrayInputStream(bytes));
     }
 
+    public static MimeMessage mimeMessageFromString(String string) throws MessagingException {
+        return mimeMessageFromBytes(string.getBytes(StandardCharsets.UTF_8));
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
index 6ac877b..9d87c0d 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
@@ -165,7 +165,7 @@ public class ContactExtractorTest {
             + "Subject: extract this recipient please\r\n"
             + "\r\n"
             + "Please!";
-        MimeMessage message = MimeMessageUtil.mimeMessageFromBytes(rawMessage.getBytes());
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(rawMessage);
         FakeMail mail = FakeMail.builder().mimeMessage(message)
             .sender(SENDER)
             .recipient("recipient@example.com")
@@ -185,7 +185,7 @@ public class ContactExtractorTest {
             + "Subject: extract this recipient please\r\n"
             + "\r\n"
             + "Please!";
-        MimeMessage message = MimeMessageUtil.mimeMessageFromBytes(rawMessage.getBytes());
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(rawMessage);
         FakeMail mail = FakeMail.builder().mimeMessage(message)
             .sender(SENDER)
             .recipient("recipient@example.com")
@@ -205,7 +205,7 @@ public class ContactExtractorTest {
             + "Subject: extract this recipient please\r\n"
             + "\r\n"
             + "Please!";
-        MimeMessage message = MimeMessageUtil.mimeMessageFromBytes(rawMessage.getBytes());
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(rawMessage);
         FakeMail mail = FakeMail.builder().mimeMessage(message)
             .sender(SENDER)
             .recipient("recipient@example.com")

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
index 14b08da..88fb7e9 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
@@ -28,19 +28,15 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 
-import java.io.ByteArrayInputStream;
-import java.nio.charset.StandardCharsets;
-import java.util.Properties;
-
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.AddressException;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailContext;
 import org.apache.mailet.base.test.FakeMailetConfig;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -90,11 +86,11 @@ public class LogMessageTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
-        message.setText("This is a fake mail");
         mailet.service(FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .addHeader("Date", "Tue, 16 Jan 2018 10:23:03 +0100")
+                    .setSubject("subject")
+                    .setText("This is a fake mail"))
                 .build());
 
         verify(logger).info("Logging mail {}", (Object) null);
@@ -102,7 +98,6 @@ public class LogMessageTest {
         verify(logger).info("\n");
         verify(logger).info("Subject: subject\n");
         verify(logger).error(eq("Error logging message."), any(MessagingException.class));
-        verifyNoMoreInteractions(logger);
     }
 
     @Test
@@ -254,9 +249,12 @@ public class LogMessageTest {
         verifyNoMoreInteractions(logger);
     }
 
-    private FakeMail createMail() throws MessagingException, AddressException {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()),
-                new ByteArrayInputStream("Subject: subject\r\nContent-Type: text/plain\r\n\r\nThis is a fake mail".getBytes(StandardCharsets.UTF_8)));
+    private FakeMail createMail() throws MessagingException {
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(
+            "Subject: subject\r\n" +
+                "Content-Type: text/plain\r\n" +
+                "\r\n" +
+                "This is a fake mail");
         return FakeMail.builder()
                 .mimeMessage(message)
                 .name("name")

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java
index 1611f30..28fc3f4 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java
@@ -21,16 +21,15 @@ package org.apache.james.transport.mailets;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.io.ByteArrayInputStream;
 import java.nio.charset.StandardCharsets;
-import java.util.Properties;
 
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailetConfig;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -61,11 +60,9 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("one test");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("one test"))
                 .build();
         mailet.service(mail);
 
@@ -86,12 +83,10 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setText("This is one simple test/ è one simple test.\n"
-                + "Blo blo blo blo.\n");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("This is one simple test/ è one simple test.\n"
+                        + "Blo blo blo blo.\n"))
                 .build();
         mailet.service(mail);
 
@@ -107,11 +102,9 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setText("aaa");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("aaa"))
                 .build();
         mailet.service(mail);
 
@@ -126,11 +119,9 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("re: r:ri:one test");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("re: r:ri:one test"))
                 .build();
         mailet.service(mail);
 
@@ -147,13 +138,11 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setText("Test.\r\n" + "\r\n" + "--original message--\r\n"
-                + "part of\r\n" + "message\\ that\\0 must0 be\r\n"
-                + "quoted. Let's see if\r\n" + "he can do it.");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("Test.\r\n" + "\r\n" + "--original message--\r\n"
+                        + "part of\r\n" + "message\\ that\\0 must0 be\r\n"
+                        + "quoted. Let's see if\r\n" + "he can do it."))
                 .build();
         mailet.service(mail);
 
@@ -171,12 +160,10 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("one test");
-        message.setText("Replacement … one test …");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("one test")
+                    .setText("Replacement … one test …"))
                 .build();
         mailet.service(mail);
 
@@ -199,8 +186,7 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()),
-                new ByteArrayInputStream(messageSource.getBytes()));
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(messageSource);
 
         Mail mail = FakeMail.builder()
                 .mimeMessage(message)
@@ -219,13 +205,11 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("one test");
-        message.setText("This is one simple test/ è one simple test.\n"
-                + "Blo blo blo blo.\n");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("one test")
+                    .setText("This is one simple test/ è one simple test.\n"
+                        + "Blo blo blo blo.\n"))
                 .build();
         mailet.service(mail);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
index f7423da..ceffcce 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
@@ -22,16 +22,13 @@ package org.apache.james.transport.mailets;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.util.Properties;
-
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.base.test.FakeMailetConfig;
 import org.apache.mailet.base.test.MailUtil;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -58,7 +55,7 @@ public class SetMailAttributeTest {
 
         mailet.init(mailetConfig);
 
-        Mail mail = MailUtil.createMockMail2Recipients(new MimeMessage(Session.getDefaultInstance(new Properties())));
+        Mail mail = MailUtil.createMockMail2Recipients(MimeMessageUtil.defaultMimeMessage());
         
         mailet.service(mail);
 
@@ -74,7 +71,7 @@ public class SetMailAttributeTest {
      
         mailet.init(mailetConfig);
 
-        Mail mail = MailUtil.createMockMail2Recipients(new MimeMessage(Session.getDefaultInstance(new Properties())));
+        Mail mail = MailUtil.createMockMail2Recipients(MimeMessageUtil.defaultMimeMessage());
         
         mailet.service(mail);
 
@@ -90,7 +87,7 @@ public class SetMailAttributeTest {
         
         mailet.init(mailetConfig);
         
-        Mail mail = MailUtil.createMockMail2Recipients(new MimeMessage(Session.getDefaultInstance(new Properties())));
+        Mail mail = MailUtil.createMockMail2Recipients(MimeMessageUtil.defaultMimeMessage());
         mail.setAttribute("org.apache.james.junit1", "foo");
         
         mailet.service(mail);

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageModifierTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageModifierTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageModifierTest.java
index 413a9bb..081d10f 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageModifierTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageModifierTest.java
@@ -22,19 +22,19 @@ package org.apache.james.transport.mailets.utils;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.Optional;
-import java.util.Properties;
 
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.junit.Test;
 
 public class MimeMessageModifierTest {
 
     @Test
     public void replaceSubjectShouldReplaceTheSubjectWhenSubjectIsPresent() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
+        MimeMessage message = MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("subject")
+            .build();
 
         String expectedSubject = "new subject";
         new MimeMessageModifier(message).replaceSubject(Optional.of(expectedSubject));
@@ -44,9 +44,10 @@ public class MimeMessageModifierTest {
 
     @Test
     public void replaceSubjectShouldNotAlterTheSubjectWhenSubjectIsAbsent() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
         String expectedSubject = "subject";
-        message.setSubject(expectedSubject);
+        MimeMessage message = MimeMessageBuilder.mimeMessageBuilder()
+                .setSubject(expectedSubject)
+                .build();
 
         new MimeMessageModifier(message).replaceSubject(Optional.empty());
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasAttachmentTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasAttachmentTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasAttachmentTest.java
index cc4b698..5e76266 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasAttachmentTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasAttachmentTest.java
@@ -24,15 +24,13 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import java.util.Properties;
-
-import javax.mail.Session;
 import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.test.FakeMail;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -46,7 +44,7 @@ public class HasAttachmentTest {
     public void setUp() throws Exception {
         testee = new HasAttachment();
 
-        mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        mimeMessage = MimeMessageUtil.defaultMimeMessage();
         mail = FakeMail.builder()
             .recipient(ANY_AT_JAMES)
             .mimeMessage(mimeMessage)

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java
index d46daf8..1b79c46 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java
@@ -22,12 +22,10 @@ package org.apache.james.transport.matchers;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.util.Properties;
-
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.Matcher;
 import org.apache.mailet.base.test.FakeMail;
@@ -188,11 +186,10 @@ public class HasHeaderTest {
                 .condition(HEADER_NAME_1 + "+" + HEADER_NAME_2)
                 .build());
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.addHeader(HEADER_NAME_1, HEADER_VALUE_1);
-        mimeMessage.addHeader(HEADER_NAME_2, HEADER_VALUE_2);
-        mimeMessage.saveChanges();
-        Mail mail = MailUtil.createMockMail2Recipients(mimeMessage);
+        Mail mail = MailUtil.createMockMail2Recipients(MimeMessageBuilder.mimeMessageBuilder()
+            .addHeader(HEADER_NAME_1, HEADER_VALUE_1)
+            .addHeader(HEADER_NAME_2, HEADER_VALUE_2)
+            .build());
 
         assertThat(matcher.match(mail)).containsAll(mockedMail.getRecipients());
     }
@@ -204,11 +201,10 @@ public class HasHeaderTest {
                 .condition(HEADER_NAME_1 + "=" + HEADER_VALUE_2)
                 .build());
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.addHeader(HEADER_NAME_1, HEADER_VALUE_1);
-        mimeMessage.addHeader(HEADER_NAME_1, HEADER_VALUE_2);
-        mimeMessage.saveChanges();
-        Mail mail = MailUtil.createMockMail2Recipients(mimeMessage);
+        Mail mail = MailUtil.createMockMail2Recipients(MimeMessageBuilder.mimeMessageBuilder()
+            .addHeader(HEADER_NAME_1, HEADER_VALUE_1)
+            .addHeader(HEADER_NAME_1, HEADER_VALUE_2)
+            .build());
 
         assertThat(matcher.match(mail)).containsAll(mockedMail.getRecipients());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java
index 6ffe14c..ad3f709 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java
@@ -22,16 +22,14 @@ package org.apache.james.transport.matchers;
 import static org.apache.mailet.base.MailAddressFixture.ANY_AT_JAMES;
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.util.Properties;
-
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.RFC2822Headers;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMatcherConfig;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -44,7 +42,7 @@ public class RelayLimitTest {
     @Before
     public void setUp() throws Exception {
         testee = new RelayLimit();
-        mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        mimeMessage = MimeMessageUtil.defaultMimeMessage();
         mail = FakeMail.builder()
                 .recipient(ANY_AT_JAMES)
                 .mimeMessage(mimeMessage)

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java
index 8ecfcad..3cbaabf 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java
@@ -21,7 +21,6 @@ package org.apache.james.server.core;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Date;
@@ -29,10 +28,10 @@ import java.util.concurrent.TimeUnit;
 import java.util.stream.IntStream;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.test.MailUtil;
 import org.junit.Before;
@@ -43,12 +42,13 @@ import com.google.common.collect.ImmutableList;
 
 public class MailImplTest {
 
-    private static final Session NO_SESSION = null;
     private MimeMessage emptyMessage;
 
     @Before
     public void setup() throws MessagingException {
-        emptyMessage = new MimeMessage(NO_SESSION, new ByteArrayInputStream(new byte[0]));
+        emptyMessage = MimeMessageBuilder.mimeMessageBuilder()
+            .setText("")
+            .build();
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxyTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxyTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxyTest.java
index 1b13bbf..9543d72 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxyTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxyTest.java
@@ -27,14 +27,13 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.util.ArrayList;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 import javax.mail.util.SharedByteArrayInputStream;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.mailet.Mail;
 import org.junit.Test;
@@ -49,8 +48,6 @@ public class MimeMessageCopyOnWriteProxyTest extends MimeMessageFromStreamTest {
     protected MimeMessage getMessageFromSources(String sources) throws Exception {
         MimeMessageInputStreamSource mmis = new MimeMessageInputStreamSource("test", new SharedByteArrayInputStream(sources.getBytes()));
         return new MimeMessageCopyOnWriteProxy(mmis);
-        // return new MimeMessage(Session.getDefaultInstance(new
-        // Properties()),new ByteArrayInputStream(sources.getBytes()));
     }
 
     @Test
@@ -169,10 +166,12 @@ public class MimeMessageCopyOnWriteProxyTest extends MimeMessageFromStreamTest {
     public void testMessageCloning3() throws Exception {
         ArrayList<MailAddress> r = new ArrayList<>();
         r.add(new MailAddress("recipient@test.com"));
-        MimeMessage m = new MimeMessage(Session.getDefaultInstance(new Properties(null)));
-        m.setText("CIPS");
-        MailImpl mail = new MailImpl("test", new MailAddress("test@test.com"), r, m);
-        assertTrue(isSameMimeMessage(m, mail.getMessage()));
+        MimeMessage mimeMessage = MimeMessageBuilder.mimeMessageBuilder()
+            .setText("CIPS")
+            .build();
+        MailImpl mail = new MailImpl("test", new MailAddress("test@test.com"), r,
+            mimeMessage);
+        assertTrue(isSameMimeMessage(mimeMessage, mail.getMessage()));
         // change the message that should be not referenced by mail that has
         // been disposed, so it should not clone it!
         System.gc();
@@ -181,9 +180,9 @@ public class MimeMessageCopyOnWriteProxyTest extends MimeMessageFromStreamTest {
         mail.getMessage().setText("new Body 3");
         System.gc();
         Thread.sleep(100);
-        assertFalse(isSameMimeMessage(m, mail.getMessage()));
+        assertFalse(isSameMimeMessage(mimeMessage, mail.getMessage()));
         LifecycleUtil.dispose(mail);
-        LifecycleUtil.dispose(m);
+        LifecycleUtil.dispose(mimeMessage);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromSharedStreamTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromSharedStreamTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromSharedStreamTest.java
index eb79ce0..894db47 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromSharedStreamTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromSharedStreamTest.java
@@ -19,17 +19,15 @@
 
 package org.apache.james.server.core;
 
-import java.util.Properties;
-
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
-import javax.mail.util.SharedByteArrayInputStream;
+
+import org.apache.mailet.base.test.MimeMessageUtil;
 
 public class MimeMessageFromSharedStreamTest extends MimeMessageFromStreamTest {
 
     @Override
     protected MimeMessage getMessageFromSources(String sources) throws Exception {
-        return new MimeMessage(Session.getDefaultInstance(new Properties()), new SharedByteArrayInputStream(sources.getBytes()));
+        return MimeMessageUtil.mimeMessageFromString(sources);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
index 2c73e85..7134a4a 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
@@ -36,8 +36,10 @@ import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.mailet.base.RFC2822Headers;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Test;
 
 /**
@@ -46,12 +48,11 @@ import org.junit.Test;
 public class MimeMessageTest {
 
     protected MimeMessage getSimpleMessage() throws Exception {
-        MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mmCreated.addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)");
-        mmCreated.setSubject("test");
-        mmCreated.setText("test body");
-        mmCreated.saveChanges();
-        return mmCreated;
+        return MimeMessageBuilder.mimeMessageBuilder()
+            .addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)")
+            .setSubject("test")
+            .setText("test body")
+            .build();
     }
 
     protected String getSimpleMessageCleanedSource() {
@@ -65,13 +66,12 @@ public class MimeMessageTest {
     }
 
     protected MimeMessage getMessageWithBadReturnPath() throws Exception {
-        MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mmCreated.addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)");
-        mmCreated.setSubject("test");
-        mmCreated.setHeader(RFC2822Headers.RETURN_PATH, "<my...@example.com>");
-        mmCreated.setText("test body");
-        mmCreated.saveChanges();
-        return mmCreated;
+        return MimeMessageBuilder.mimeMessageBuilder()
+            .addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)")
+            .setSubject("test")
+            .addHeader(RFC2822Headers.RETURN_PATH, "<my...@example.com>")
+            .setText("test body")
+            .build();
     }
 
     protected String getMessageWithBadReturnPathSource() {
@@ -100,7 +100,7 @@ public class MimeMessageTest {
     }
 
     protected MimeMessage getMultipartMessage() throws Exception {
-        MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        MimeMessage mmCreated = MimeMessageUtil.defaultMimeMessage();
         mmCreated.setSubject("test");
         mmCreated.addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)");
         MimeMultipart mm = new MimeMultipart("alternative");

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java
index 028b605..cdde96b 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java
@@ -24,20 +24,17 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.net.UnknownHostException;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailContext;
 import org.apache.mailet.base.test.FakeMailetConfig;
-import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -110,13 +107,12 @@ public class BounceTest {
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
         FakeMail mail = FakeMail.builder()
-                .sender(senderMailAddress)
-                .name(MAILET_NAME)
-                .recipient(MailAddressFixture.ANY_AT_JAMES)
-                .build();
-        MimeMessage mimeMessage = MimeMessageUtil.defaultMimeMessage();
-        mimeMessage.setText("My content");
-        mail.setMessage(mimeMessage);
+            .sender(senderMailAddress)
+            .name(MAILET_NAME)
+            .recipient(MailAddressFixture.ANY_AT_JAMES)
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .setText("My content"))
+            .build();
 
         bounce.service(mail);
 
@@ -137,13 +133,11 @@ public class BounceTest {
         bounce.init(mailetConfig);
 
         FakeMail mail = FakeMail.builder()
-                .name(MAILET_NAME)
-                .recipient(MailAddressFixture.ANY_AT_JAMES)
-                .build();
-
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
-        mail.setMessage(mimeMessage);
+            .name(MAILET_NAME)
+            .recipient(MailAddressFixture.ANY_AT_JAMES)
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .setText("My content"))
+            .build();
 
         bounce.service(mail);
 
@@ -161,14 +155,12 @@ public class BounceTest {
 
         String initialState = "initial";
         FakeMail mail = FakeMail.builder()
-                .state(initialState)
-                .name(MAILET_NAME)
-                .recipient(MailAddressFixture.ANY_AT_JAMES)
-                .build();
-
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
-        mail.setMessage(mimeMessage);
+            .state(initialState)
+            .name(MAILET_NAME)
+            .recipient(MailAddressFixture.ANY_AT_JAMES)
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .setText("My content"))
+            .build();
 
         bounce.service(mail);
 
@@ -184,14 +176,13 @@ public class BounceTest {
                 .build();
         bounce.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
         FakeMail mail = FakeMail.builder()
-                .name(MAILET_NAME)
-                .sender(MailAddressFixture.ANY_AT_JAMES)
-                .recipient(MailAddressFixture.ANY_AT_JAMES2)
-                .mimeMessage(mimeMessage)
-                .build();
+            .name(MAILET_NAME)
+            .sender(MailAddressFixture.ANY_AT_JAMES)
+            .recipient(MailAddressFixture.ANY_AT_JAMES2)
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .setSubject("My subject"))
+            .build();
 
         bounce.service(mail);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java
index b440830..fd4a233 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java
@@ -26,15 +26,14 @@ import static org.mockito.Mockito.when;
 
 import java.net.InetAddress;
 import java.util.List;
-import java.util.Properties;
 import java.util.TimeZone;
 
 import javax.mail.BodyPart;
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.mailet.Mail;
@@ -122,11 +121,10 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -153,12 +151,11 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
                 .attribute("delivery-error", "Delivery error")
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -195,12 +192,11 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
                 .attribute("delivery-error", "Delivery error")
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -235,12 +231,11 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
                 .attribute("delivery-error", "Delivery error")
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -275,11 +270,10 @@ public class DSNBounceTest {
                 .build();
         dsnBounce.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .attribute("delivery-error", "Delivery error")
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -299,11 +293,10 @@ public class DSNBounceTest {
                 .build();
         dsnBounce.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .attribute("delivery-error", "Delivery error")
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -324,11 +317,10 @@ public class DSNBounceTest {
                 .build();
         dsnBounce.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .attribute("delivery-error", "Delivery error")
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -350,11 +342,10 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -382,15 +373,16 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
+        MimeMessage mimeMessage = MimeMessageBuilder.mimeMessageBuilder()
+            .setText("My content")
+            .build();
         FakeMail mail = FakeMail.builder()
-                .sender(senderMailAddress)
-                .mimeMessage(mimeMessage)
-                .name(MAILET_NAME)
-                .recipient("recipient@domain.com")
-                .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
-                .build();
+            .sender(senderMailAddress)
+            .name(MAILET_NAME)
+            .recipient("recipient@domain.com")
+            .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
+            .mimeMessage(mimeMessage)
+            .build();
 
         dsnBounce.service(mail);
 
@@ -414,13 +406,12 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
-        mimeMessage.setHeader("myHeader", "myValue");
-        mimeMessage.setSubject("mySubject");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content")
+                    .addHeader("myHeader", "myValue")
+                    .setSubject("mySubject"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -436,8 +427,9 @@ public class DSNBounceTest {
         MimeMessage sentMessage = sentMail.getMsg();
         MimeMultipartReport content = (MimeMultipartReport) sentMessage.getContent();
         BodyPart bodyPart = content.getBodyPart(2);
-        assertThat(bodyPart.getContent()).isEqualTo("Subject: mySubject\r\n" +
-                "myHeader: myValue\r\n");
+        assertThat((String) bodyPart.getContent())
+            .contains("Subject: mySubject")
+            .contains("myHeader: myValue");
         assertThat(bodyPart.getContentType()).isEqualTo("text/rfc822-headers; name=mySubject");
     }
 
@@ -450,11 +442,10 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -480,13 +471,12 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         String expectedDate = "Wed, 28 Sep 2016 14:25:52 +0000 (UTC)";
-        mimeMessage.setHeader(RFC2822Headers.DATE, expectedDate);
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content")
+                    .addHeader(RFC2822Headers.DATE, expectedDate))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -512,16 +502,15 @@ public class DSNBounceTest {
                 .build();
         dsnBounce.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject"))
                 .build();
 
         dsnBounce.service(mail);
 
         assertThat(mail.getMessage().getSubject()).isEqualTo("pre My subject");
     }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ForwardTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ForwardTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ForwardTest.java
index 3d18abe..15fa49c 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ForwardTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ForwardTest.java
@@ -25,13 +25,11 @@ import static org.mockito.Mockito.when;
 
 import java.net.UnknownHostException;
 import java.util.Collection;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
@@ -208,13 +206,12 @@ public class ForwardTest {
                 .build();
         forward.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
         String expectedSubject = "My subject";
-        mimeMessage.setSubject(expectedSubject);
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject"))
                 .build();
 
         forward.service(mail);

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java
index 5cfdd6c..64c4174 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java
@@ -24,13 +24,11 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.net.UnknownHostException;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.mailet.base.MailAddressFixture;
@@ -154,12 +152,11 @@ public class NotifyPostmasterTest {
                 .build();
         notifyPostmaster.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject"))
                 .build();
 
         notifyPostmaster.service(mail);

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java
index 145dd4e..ddf83e9 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java
@@ -24,13 +24,11 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.net.UnknownHostException;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.mailet.base.MailAddressFixture;
@@ -50,16 +48,14 @@ public class NotifySenderTest {
     public ExpectedException expectedException = ExpectedException.none();
 
     private NotifySender notifySender;
-    private MailAddress postmaster;
     private FakeMailContext fakeMailContext;
 
     @Before
     public void setUp() throws Exception {
         DNSService dnsService = mock(DNSService.class);
         notifySender = new NotifySender(dnsService);
-        postmaster = new MailAddress("postmaster@james.org");
         fakeMailContext = FakeMailContext.builder()
-                .postmaster(postmaster)
+                .postmaster(new MailAddress("postmaster@james.org"))
                 .build();
 
         when(dnsService.getLocalHost()).thenThrow(new UnknownHostException());
@@ -166,12 +162,11 @@ public class NotifySenderTest {
                 .build();
         notifySender.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject"))
                 .build();
 
         notifySender.service(mail);

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java
index ae97e36..3d6a79c 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java
@@ -25,10 +25,8 @@ import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.when;
 
 import java.util.Collection;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
@@ -41,6 +39,7 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailContext;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mock;
@@ -73,7 +72,7 @@ public class RecipientRewriteTableProcessorTest {
         mappings = MappingsImpl.builder()
                 .add(MailAddressFixture.ANY_AT_JAMES.toString())
                 .build();
-        message = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        message = MimeMessageUtil.defaultMimeMessage();
 
         nonDomainWithDefaultLocal = new MailAddress(NONEDOMAIN + "@" + MailAddressFixture.JAMES_LOCAL);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java
index b1782f8..4f01b64 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java
@@ -20,9 +20,6 @@ package org.apache.james.transport.mailets;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.util.Properties;
-
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.domainlist.api.DomainList;
@@ -31,6 +28,7 @@ import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailContext;
 import org.apache.mailet.base.test.FakeMailetConfig;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mock;
@@ -54,7 +52,7 @@ public class RecipientRewriteTableTest {
         
         mailet = new RecipientRewriteTable(virtualTableStore, domainList);
 
-        message = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        message = MimeMessageUtil.defaultMimeMessage();
 
         mailetContext = FakeMailContext.defaultContext();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java
index 468b560..ff72b03 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java
@@ -24,13 +24,11 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.net.UnknownHostException;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
@@ -280,10 +278,9 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
-        message.setText("This is a fake mail");
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("subject")
+            .setText("This is a fake mail"));
 
         assertThat(redirect.getReversePath(mail)).isEmpty();
     }
@@ -297,10 +294,9 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
-        message.setText("This is a fake mail");
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("subject")
+            .setText("This is a fake mail"));
 
         assertThat(redirect.getReversePath(mail)).contains(new MailAddress("reverse@james.org"));
     }
@@ -314,10 +310,9 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
-        message.setText("This is a fake mail");
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("subject")
+            .setText("This is a fake mail"));
 
         assertThat(redirect.getReversePath(mail)).contains(postmaster);
     }
@@ -332,10 +327,9 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
-        message.setText("This is a fake mail");
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("subject")
+            .setText("This is a fake mail"));
 
         assertThat(redirect.getReversePath(mail)).contains(postmaster);
     }
@@ -349,10 +343,9 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
-        message.setText("This is a fake mail");
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("subject")
+            .setText("This is a fake mail"));
 
         assertThat(redirect.getReversePath(mail)).contains(new MailAddress("sender@james.org"));
     }
@@ -367,13 +360,12 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
-        mimeMessage.setText("content");
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject")
+                    .setText("content"))
                 .build();
 
         redirect.service(mail);
@@ -391,13 +383,13 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
-        mimeMessage.setText("content");
+
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject")
+                    .setText("content"))
                 .build();
 
         redirect.service(mail);

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ResendTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ResendTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ResendTest.java
index 26653f4..7c64751 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ResendTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ResendTest.java
@@ -24,13 +24,11 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.net.UnknownHostException;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
@@ -51,15 +49,13 @@ public class ResendTest {
 
     private Resend resend;
     private FakeMailContext fakeMailContext;
-    private MailAddress postmaster;
 
     @Before
     public void setUp() throws Exception {
         DNSService dnsService = mock(DNSService.class);
         resend = new Resend(dnsService);
-        postmaster = new MailAddress("postmaster@james.org");
         fakeMailContext = FakeMailContext.builder()
-                .postmaster(postmaster)
+                .postmaster(new MailAddress("postmaster@james.org"))
                 .build();
 
         when(dnsService.getLocalHost()).thenThrow(new UnknownHostException());
@@ -120,13 +116,12 @@ public class ResendTest {
                 .build();
         resend.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
-        mimeMessage.setText("content");
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject")
+                    .setText("content"))
                 .build();
 
         resend.service(mail);
@@ -146,13 +141,13 @@ public class ResendTest {
                 .build();
         resend.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
-        mimeMessage.setText("content");
+
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject")
+                    .setText("content"))
                 .build();
 
         resend.service(mail);


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