james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From b...@apache.org
Subject svn commit: r680976 - in /james/mime4j/trunk/src/test: java/org/apache/james/mime4j/message/ resources/testmsgs/
Date Wed, 30 Jul 2008 11:11:49 GMT
Author: bago
Date: Wed Jul 30 04:11:48 2008
New Revision: 680976

URL: http://svn.apache.org/viewvc?rev=680976&view=rev
Log:
Added a new Message.writeTo checker with roundtrip checking for messages (MIME4J-64).
We first check the output against the expected output (.out file). Then we read it and output it again to make sure that starting from our own output a new output will be identical.
Added .out files for existing messages (not all of them are what we really would expect, but they are what currently mime4j outputs)

Added:
    james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/ExampleMessagesRoundtripTest.java   (with props)
    james/mime4j/trunk/src/test/resources/testmsgs/bad-newlines-multiple-parts-base64.out
    james/mime4j/trunk/src/test/resources/testmsgs/bad-newlines-multiple-parts.out
    james/mime4j/trunk/src/test/resources/testmsgs/base64-encoded-text.out
    james/mime4j/trunk/src/test/resources/testmsgs/base64encoded-rfc822message-nested.out
    james/mime4j/trunk/src/test/resources/testmsgs/base64encoded-rfc822message.out
    james/mime4j/trunk/src/test/resources/testmsgs/basic-plain-very-long-lines.out
    james/mime4j/trunk/src/test/resources/testmsgs/basic-plain-with-bad-header-separator.out
    james/mime4j/trunk/src/test/resources/testmsgs/basic-plain.out
    james/mime4j/trunk/src/test/resources/testmsgs/ending-boundaries.out
    james/mime4j/trunk/src/test/resources/testmsgs/example.out
    james/mime4j/trunk/src/test/resources/testmsgs/intermediate-boundaries.out
    james/mime4j/trunk/src/test/resources/testmsgs/misplaced-boundary.out
    james/mime4j/trunk/src/test/resources/testmsgs/missing-inner-boundary.out
    james/mime4j/trunk/src/test/resources/testmsgs/qp-body.out
    james/mime4j/trunk/src/test/resources/testmsgs/russian-headers.out
    james/mime4j/trunk/src/test/resources/testmsgs/simple-attachment.out
    james/mime4j/trunk/src/test/resources/testmsgs/very-long-boundary.out
    james/mime4j/trunk/src/test/resources/testmsgs/very-very-long-boundary.out
    james/mime4j/trunk/src/test/resources/testmsgs/weird-boundary.out

Added: james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/ExampleMessagesRoundtripTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/ExampleMessagesRoundtripTest.java?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/ExampleMessagesRoundtripTest.java (added)
+++ james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/ExampleMessagesRoundtripTest.java Wed Jul 30 04:11:48 2008
@@ -0,0 +1,123 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.mime4j.message;
+
+import org.apache.james.mime4j.message.Message;
+import org.apache.james.mime4j.util.CodecUtil;
+import org.apache.james.mime4j.util.MessageUtils;
+import org.apache.log4j.BasicConfigurator;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Creates a TestSuite running the test for each .msg file in the test resouce folder.
+ * Allow running of a single test from Unit testing GUIs
+ */
+public class ExampleMessagesRoundtripTest extends TestCase {
+
+    private File file;
+
+
+    public ExampleMessagesRoundtripTest(String testName) {
+        this(testName, ExampleMessagesRountripTestSuite.getFile(testName));
+    }
+
+    public ExampleMessagesRoundtripTest(String name, File testFile) {
+        super(name);
+        this.file = testFile;
+    }
+
+    public void setUp() {
+        BasicConfigurator.resetConfiguration();
+        BasicConfigurator.configure();
+    }
+   
+    protected void runTest() throws Throwable {
+        Message inputMessage = new Message(new FileInputStream(file));
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        inputMessage.writeTo(out, MessageUtils.LENIENT);
+        
+        String msgoutFile = file.getAbsolutePath().substring(0, file.getAbsolutePath().lastIndexOf('.')) + ".out";
+        String msgoutFileMime4j = file.getAbsolutePath().substring(0, file.getAbsolutePath().lastIndexOf('.')) + ".mime4j.out";
+        
+        try {
+            ByteArrayOutputStream expectedstream = new ByteArrayOutputStream();
+            CodecUtil.copy(new FileInputStream(msgoutFile), expectedstream);
+            assertEquals("Wrong Expected result", new String(expectedstream.toByteArray()), new String(out.toByteArray()));
+            
+            Message roundtripMessage = new Message(new FileInputStream(msgoutFile));
+            ByteArrayOutputStream outRoundtrip = new ByteArrayOutputStream();
+            roundtripMessage.writeTo(outRoundtrip, MessageUtils.LENIENT);
+            assertEquals("Failed LENIENT roundtrip", new String(out.toByteArray()), new String(outRoundtrip.toByteArray()));
+
+            roundtripMessage = new Message(new FileInputStream(msgoutFile));
+            outRoundtrip = new ByteArrayOutputStream();
+            roundtripMessage.writeTo(outRoundtrip, MessageUtils.STRICT_ERROR);
+            assertEquals("Failed STRICT roundtrip", new String(out.toByteArray()), new String(outRoundtrip.toByteArray()));
+
+        } catch (FileNotFoundException e) {
+            FileOutputStream fos = new FileOutputStream(msgoutFileMime4j);
+            fos.write(out.toByteArray());
+            fos.flush();
+            fos.close();
+            fail("Expected file not found: generated a file with the expected result!");
+        }
+        
+        
+    }
+
+    public static Test suite() throws IOException {
+        return new ExampleMessagesRountripTestSuite();
+    }
+
+    
+    static class ExampleMessagesRountripTestSuite extends TestSuite {
+
+        private static final File TESTS_FOLDER = new File("src/test/resources/testmsgs");
+
+        public ExampleMessagesRountripTestSuite() throws IOException {
+            super();
+            File dir = TESTS_FOLDER;
+            File[] files = dir.listFiles();
+            
+            for (int i = 0; i < files.length; i++) {
+                File f = files[i];
+                
+                if (f.getName().toLowerCase().endsWith(".msg")) {
+                    addTest(new ExampleMessagesRoundtripTest(f.getName().substring(0, f.getName().length()-4), f));
+                }
+            }
+        }
+        
+        public static File getFile(String name) {
+            return new File(TESTS_FOLDER.getAbsolutePath()+File.separator+name+".msg");
+        }
+
+    }
+}

Propchange: james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/ExampleMessagesRoundtripTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: james/mime4j/trunk/src/test/java/org/apache/james/mime4j/message/ExampleMessagesRoundtripTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: james/mime4j/trunk/src/test/resources/testmsgs/bad-newlines-multiple-parts-base64.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/bad-newlines-multiple-parts-base64.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/bad-newlines-multiple-parts-base64.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/bad-newlines-multiple-parts-base64.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,12 @@
+Content-type: message/rfc822
+Content-transfer-encoding: base64
+Subject: a multipart message/rfc822 which has been base64-encoded
+
+Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSItLS0tLS0tLS0tLS0yOTlB
+NzBCMzM5QjY1QTkzNTQyRDJBRSINCg0KVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBN
+SU1FIGZvcm1hdC4KDQotLS0tLS0tLS0tLS0tLTI5OUE3MEIzMzlCNjVBOTM1NDJEMkFFDQpDb250
+ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkNCkNvbnRlbnQtVHJhbnNmZXIt
+RW5jb2Rpbmc6IDdiaXQNCg0KVGV4dCBib2R5Cg0KLS0tLS0tLS0tLS0tLS0yOTlBNzBCMzM5QjY1
+QTkzNTQyRDJBRS0tDQpUaGF0IHdhcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1h
+dC4K
+

Added: james/mime4j/trunk/src/test/resources/testmsgs/bad-newlines-multiple-parts.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/bad-newlines-multiple-parts.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/bad-newlines-multiple-parts.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/bad-newlines-multiple-parts.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,12 @@
+Content-Type: multipart/mixed; boundary="------------299A70B339B65A93542D2AE"
+
+This is a multi-part message in MIME format.
+
+--------------299A70B339B65A93542D2AE
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+
+Text body
+
+--------------299A70B339B65A93542D2AE--
+That was a multi-part message in MIME format.

Added: james/mime4j/trunk/src/test/resources/testmsgs/base64-encoded-text.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/base64-encoded-text.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/base64-encoded-text.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/base64-encoded-text.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,11 @@
+Content-type: text/plain
+Content-transfer-encoding: base64
+Subject: a multipart message/rfc822 which has been base64-encoded as plain text
+
+Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSItLS0tLS0tLS0tLS0yOTlB
+NzBCMzM5QjY1QTkzNTQyRDJBRSIKClRoaXMgaXMgYSBtdWx0aS1wYXJ0IG1lc3NhZ2UgaW4gTUlN
+RSBmb3JtYXQuCgotLS0tLS0tLS0tLS0tLTI5OUE3MEIzMzlCNjVBOTM1NDJEMkFFCkNvbnRlbnQt
+VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQpDb250ZW50LVRyYW5zZmVyLUVuY29k
+aW5nOiA3Yml0CgpUZXh0IGJvZHkKCi0tLS0tLS0tLS0tLS0tMjk5QTcwQjMzOUI2NUE5MzU0MkQy
+QUUtLQpUaGF0IHdhcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4K
+

Added: james/mime4j/trunk/src/test/resources/testmsgs/base64encoded-rfc822message-nested.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/base64encoded-rfc822message-nested.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/base64encoded-rfc822message-nested.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/base64encoded-rfc822message-nested.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,11 @@
+MIME-Version: 1.0
+Content-Type: message/rfc822
+Subject: the body is a base64 encode rfc822 message including another base64 encoded rfc822 message
+Content-Transfer-Encoding: base64
+
+TUlNRS1WZXJzaW9uOiAxLjANClN1YmplY3Q6IGEgc2ltcGxlIHJmYzgyMiBtZXNzYWdlIGVuY29k
+ZWQgaW4gYSBiYXNlNjQgYm9keS4NCkNvbnRlbnQtVHlwZTogbWVzc2FnZS9yZmM4MjINCkNvbnRl
+bnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NA0KDQpRMjl1ZEdWdWRDMVVlWEJsT2lCMFpYaDBM
+M0JzWVdsdU95QmphR0Z5YzJWMFBYVnpMV0Z6WTJscERRcERiMjUwWlc1MExWUnlZVzV6DQpabVZ5
+TFVWdVkyOWthVzVuT2lBM1ltbDBEUW9OQ2xSbGVIUWdZbTlrZVFvTkNnPT0NCg0K
+

Added: james/mime4j/trunk/src/test/resources/testmsgs/base64encoded-rfc822message.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/base64encoded-rfc822message.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/base64encoded-rfc822message.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/base64encoded-rfc822message.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,8 @@
+MIME-Version: 1.0
+Subject: a simple rfc822 message encoded in a base64 body.
+Content-Type: message/rfc822
+Content-Transfer-Encoding: base64
+
+Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpDQpDb250ZW50LVRyYW5z
+ZmVyLUVuY29kaW5nOiA3Yml0DQoNClRleHQgYm9keQoNCg==
+

Added: james/mime4j/trunk/src/test/resources/testmsgs/basic-plain-very-long-lines.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/basic-plain-very-long-lines.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/basic-plain-very-long-lines.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/basic-plain-very-long-lines.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,13 @@
+Return-Path: foo@example.com
+Subject: Simple Subject
+From: foo@example.com
+To: bar@example.com
+Cc: recipient1@example.com,recipient2@example.com, localrecipient
+Date: Wed, 11 Feb 98 11:51 CST
+
+This is a very simple message with a simple body and no weird things at 
+all.
+
+this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line
  this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long lin
 e this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long li
 ne this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long l
 ine this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long 
 line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long
  line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very lon
 g line this is a very very long line this is a very very long line this is a very very long line this is a very very long line this is a very very long line 
+
+Done.
\ No newline at end of file

Added: james/mime4j/trunk/src/test/resources/testmsgs/basic-plain-with-bad-header-separator.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/basic-plain-with-bad-header-separator.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/basic-plain-with-bad-header-separator.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/basic-plain-with-bad-header-separator.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,9 @@
+Return-Path: foo@example.com
+Subject: Simple Subject
+From: foo@example.com
+To: bar@example.com
+Cc: recipient1@example.com,recipient2@example.com, localrecipient
+Date: Wed, 11 Feb 98 11:51 CST
+ 
+
+This results in a bogus header.

Added: james/mime4j/trunk/src/test/resources/testmsgs/basic-plain.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/basic-plain.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/basic-plain.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/basic-plain.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,9 @@
+Return-Path: foo@example.com
+Subject: Simple Subject
+From: foo@example.com
+To: bar@example.com
+Cc: recipient1@example.com,recipient2@example.com, localrecipient
+Date: Wed, 11 Feb 98 11:51 CST
+
+This is a very simple message with a simple body and no weird things at 
+all.

Added: james/mime4j/trunk/src/test/resources/testmsgs/ending-boundaries.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/ending-boundaries.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/ending-boundaries.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/ending-boundaries.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,22 @@
+Content-Type: multipart/mixed; boundary="boundary"
+
+
+--boundary
+Content-Type: text/plain
+
+first part
+
+--boundary--
+
+From the RFC about ending boundary:
+
+===================================================================
+NOTE TO IMPLEMENTORS:  Boundary string comparisons must compare the
+boundary value with the beginning of each candidate line.  An exact
+match of the entire candidate line is not required; it is sufficient
+that the boundary appear in its entirety following the CRLF.
+===================================================================
+
+--boundary--
+
+The above boundary should be part of the epilogue, too.
\ No newline at end of file

Added: james/mime4j/trunk/src/test/resources/testmsgs/example.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/example.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/example.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/example.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,149 @@
+Return-Path: <robertburrelldonkin@blueyonder.co.uk>
+Received: (qmail 18554 invoked from network); 25 May 2008 14:38:53 -0000
+Received: from unknown (HELO p3presmtp01-16.prod.phx3.secureserver.net)
+        ([208.109.80.165]) (envelope-sender <rdonkin-owner@locus.apache.org>) by
+        smtp20-01.prod.mesa1.secureserver.net (qmail-1.03) with SMTP for
+        <asf@xmlmapt.org>; 25 May 2008 14:38:53 -0000
+Received: (qmail 9751 invoked from network); 25 May 2008 14:38:53 -0000
+Received: from minotaur.apache.org ([140.211.11.9]) (envelope-sender
+        <rdonkin-owner@locus.apache.org>) by
+        p3presmtp01-16.prod.phx3.secureserver.net (qmail-ldap-1.03) with SMTP for
+        <asf@xmlmapt.org>; 25 May 2008 14:38:50 -0000
+Received: (qmail 46768 invoked by uid 1289); 25 May 2008 14:38:46 -0000
+Delivered-To: rdonkin@locus.apache.org
+Received: (qmail 46763 invoked from network); 25 May 2008 14:38:46 -0000
+Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by
+        minotaur.apache.org with SMTP; 25 May 2008 14:38:46 -0000
+Received: (qmail 61275 invoked by uid 500); 25 May 2008 14:38:48 -0000
+Delivered-To: apmail-rdonkin@apache.org
+Delivered-To: rob@localhost
+Delivered-To: rob@localhost
+Received: (qmail 61272 invoked by uid 99); 25 May 2008 14:38:48 -0000
+Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136)
+        by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 25 May 2008 07:38:48 -0700
+X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS
+X-Spam-Check-By: apache.org
+Received-SPF: pass (athena.apache.org: domain of
+        robertburrelldonkin@blueyonder.co.uk designates 195.188.213.5 as permitted
+        sender)
+Received: from [195.188.213.5] (HELO smtp-out2.blueyonder.co.uk)
+        (195.188.213.5) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 25 May 2008
+        14:38:00 +0000
+Received: from [172.23.170.140] (helo=anti-virus02-07) by
+        smtp-out2.blueyonder.co.uk with smtp (Exim 4.52) id 1K0HMV-00087e-HY for
+        rdonkin@apache.org; Sun, 25 May 2008 15:38:15 +0100
+Received: from [82.38.65.6] (helo=[10.0.0.27]) by
+        asmtp-out5.blueyonder.co.uk with esmtpa (Exim 4.52) id 1K0HMU-0001A2-3q for
+        rdonkin@apache.org; Sun, 25 May 2008 15:38:14 +0100
+Subject: This is an example of a multipart mixed email with image content
+From: Robert Burrell Donkin <robertburrelldonkin@blueyonder.co.uk>
+To: Robert Burrell Donkin <rdonkin@apache.org>
+Content-Type: multipart/mixed; boundary="=-tIdGYVstQJghyEDATnJ+"
+Date: Sun, 25 May 2008 15:38:13 +0100
+Message-Id: <1211726293.5772.10.camel@localhost>
+Mime-Version: 1.0
+X-Mailer: Evolution 2.12.3 
+X-Virus-Checked: Checked by ClamAV on apache.org
+X-Nonspam: None
+X-fetched-from: mail.xmlmapt.org
+X-Evolution-Source: imap://rob@thebes/
+
+
+--=-tIdGYVstQJghyEDATnJ+
+Content-Type: text/plain
+Content-Transfer-Encoding: 7bit
+
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+ 
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+--=-tIdGYVstQJghyEDATnJ+
+Content-Disposition: attachment; filename=blob.png;
+   modification-date="Sun, 21 Jun 2008 15:32:18 +0000"; creation-date="Sat, 20 Jun 2008 10:15:09 +0000"; read-date="Mon, 22 Jun 2008 12:08:56 +0000";size=10234;
+Content-Type: image/png; name=blob.png
+Content-Transfer-Encoding: base64
+
+iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL
+EwAACxMBAJqcGAAAAAd0SU1FB9gFGQ4iJ99ufcYAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo
+IEdJTVBXgQ4XAAAA0ElEQVQY02XMwUrDQBhF4XsnkyYhjWJaCloEN77/a/gERVwJLQiiNjYmbTqZ
+/7qIG/VsPziMTw+23Wj/ovZdMQJgViCvWNVusfa23djuUf2nugbnI2RynkWF5a2Fwdvrs7q9vhqE
+E2QAEIO6BhZBerUf6luMw49NyTR0OLw5kJD9sqk4Ipwc6GAREv5n5piXTDOQfy1JMSs8ZgXKq2kF
+iwDgEriEecnLlefFEmGAIvqD4ggJJNMM85qLtXfX9xYGuEQ+4/kIi0g88zlXd66++QaQDG5GPZyp
+rQAAAABJRU5ErkJggg==
+
+
+--=-tIdGYVstQJghyEDATnJ+
+Content-Disposition: attachment; filename=blob.png
+Content-Type: image/png; name=blob.png
+Content-Transfer-Encoding: base64
+
+iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL
+EwAACxMBAJqcGAAAAAd0SU1FB9gFGQ4iJ99ufcYAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo
+IEdJTVBXgQ4XAAAA0ElEQVQY02XMwUrDQBhF4XsnkyYhjWJaCloEN77/a/gERVwJLQiiNjYmbTqZ
+/7qIG/VsPziMTw+23Wj/ovZdMQJgViCvWNVusfa23djuUf2nugbnI2RynkWF5a2Fwdvrs7q9vhqE
+E2QAEIO6BhZBerUf6luMw49NyTR0OLw5kJD9sqk4Ipwc6GAREv5n5piXTDOQfy1JMSs8ZgXKq2kF
+iwDgEriEecnLlefFEmGAIvqD4ggJJNMM85qLtXfX9xYGuEQ+4/kIi0g88zlXd66++QaQDG5GPZyp
+rQAAAABJRU5ErkJggg==
+
+
+--=-tIdGYVstQJghyEDATnJ+
+Content-Disposition: attachment; filename=rhubarb.txt
+Content-Type: text/plain; name=rhubarb.txt; charset=us-ascii
+Content-Language: en, en-US, en-CA
+Content-Transfer-Encoding: quoted-printable
+
+Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhu=
+barb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubar=
+b Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb R=
+hubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhub=
+arb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb=
+ Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rh=
+ubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhuba=
+rb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb =
+Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhu=
+barb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubar=
+b Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb R=
+hubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhub=
+arb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb=
+ Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rh=
+ubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhuba=
+rb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb =
+Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhu=
+barb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubar=
+b Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb R=
+hubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhub=
+arb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb=
+ Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rh=
+ubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhuba=
+rb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb =
+Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhu=
+barb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubar=
+b Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb R=
+hubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhub=
+arb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb=
+ Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rh=
+ubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhuba=
+rb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb =
+Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhu=
+barb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubar=
+b Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb R=
+hubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhub=
+arb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb=
+ Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rh=
+ubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhuba=
+rb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb =
+Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb Rhubarb
+
+--=-tIdGYVstQJghyEDATnJ+--

Added: james/mime4j/trunk/src/test/resources/testmsgs/intermediate-boundaries.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/intermediate-boundaries.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/intermediate-boundaries.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/intermediate-boundaries.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,36 @@
+Content-Type: multipart/mixed; boundary="boundary"
+
+preamble
+
+--boundary
+Content-Type: text/plain
+
+first part
+
+--boundary
+Content-Type: text/plain
+
+from the rfc:
+================================
+encapsulation := delimiter transport-padding
+                      CRLF body-part
+================================
+and also
+================================
+"Composers MUST NOT generate non-zero length transport
+padding, but receivers MUST be able to handle padding
+added by message transports."
+================================
+
+second part have a start boundary ending with spaces
+and also have a boundary not at the beginning
+ --boundary
+... that should be ignored
+
+also a boundary with more data (a tab) shoud be ignored
+ --boundary	
+ 
+end of part
+
+--boundary--
+epilouge
\ No newline at end of file

Added: james/mime4j/trunk/src/test/resources/testmsgs/misplaced-boundary.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/misplaced-boundary.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/misplaced-boundary.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/misplaced-boundary.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,11 @@
+Content-Type: multipart/mixed; boundary="boundary"
+
+
+--boundary
+Content-Type: text/plain
+
+This should be a text including the --boundary
+string and should not be parsed as multiple bodies
+
+--boundary--
+epilouge

Added: james/mime4j/trunk/src/test/resources/testmsgs/missing-inner-boundary.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/missing-inner-boundary.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/missing-inner-boundary.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/missing-inner-boundary.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,21 @@
+Content-Type: multipart/mixed; boundary="outer-boundary"
+
+Outer preamble
+
+--outer-boundary
+Content-Type: text/plain
+
+Foo
+
+--outer-boundary
+Content-Type: multipart/alternative; boundary="inner-boundary"
+
+AAA
+
+--inner-boundary
+
+
+--inner-boundary--
+
+--outer-boundary--
+Outer epilouge

Added: james/mime4j/trunk/src/test/resources/testmsgs/qp-body.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/qp-body.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/qp-body.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/qp-body.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,6 @@
+Mime-Version: 1.0
+Subject: subject
+Content-Type: text/plain; charset="iso-8859-15"
+Content-Transfer-Encoding: quoted-printable
+
+7bit content with euro =A4 symbol=20

Added: james/mime4j/trunk/src/test/resources/testmsgs/russian-headers.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/russian-headers.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/russian-headers.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/russian-headers.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,5 @@
+Content-Type: text/plain; charset="US-ASCII"; name==?koi8-r?B?89DJ08/LLmRvYw==?=
+Content-Disposition: attachment; filename==?koi8-r?B?89DJ08/LLmRvYw==?=
+Subject: A simple subject
+
+A simple body.

Added: james/mime4j/trunk/src/test/resources/testmsgs/simple-attachment.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/simple-attachment.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/simple-attachment.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/simple-attachment.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,44 @@
+Date: Fri, 27 Apr 2007 16:08:23 +0200
+From: Foo Bar <bar@example.com>
+MIME-Version: 1.0
+To:  foo@example.com
+Subject: Here is the attachment I was waiting for.
+Content-Type: multipart/mixed;
+ boundary="------------090404080405080108000909"
+
+This is a multi-part message in MIME format.
+--------------090404080405080108000909
+Content-Type: text/plain; charset=ISO-8859-15
+Content-Transfer-Encoding: 7bit
+
+Body.
+
+--------------090404080405080108000909
+Content-Type: application/octet-stream;
+ name="data.bin"
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment;
+ filename="data.bin"
+
+lLzmyQjBC2gw/hiUrcy/DDI5K6CBqFSs4NKCF67G5XBzOnSInWpZ+9Uv9IxFpz8rf871xAE++y0Z
+YES9LXDdP12svxsJ4hRsekH2HJ953Kglb3hxko7LlPlxeDX15FKH0VBE8Ggr4RbwoP+cmkyyhKya
+iV95ycRzRd5ozVDGhmW/eQIZgw3nYJOt99vyPxolkHD8PLevmx4PTteIO4hIWjHGXtKCTNwBG0z4
+cW3EOHWxsvo5v6JUEueDaxfFWKrA/MWP2TkYREXMj+q0XC4MpKZgIjqRL/9Es6gqpJTb4eyYL6FB
+dgrNeLqDQ5ozgu1zaQi9+yuoCABIHKCEPv32W+9Wt/MjMqCnKdk+ZdswZBna0Fq/168oqKh0S++t
+rpgndHvWZWojNY+rDqnl5o3T9IvTgTuG8IHPSxUODbWFy1vim+jUeGNpCfko6DGo5oBCKzg5BTlz
+2kAED6F1X6/a+w0/9zGJZJ9Tyg6fb8LE7OwDFp1pH99x6SgRxa+IFHoXhbjRzkRi/ZRZKrqm4jxv
+hFTXlx9w70SL0GawHUwuNOgEUKJM75ADmDEEtRB0pQ8SRPoKn/b1RLGQPsvHzcqtSJljgbMMBmoi
+BFkAnzopnVn1RJfBzI6x9YcXtNqtJCTXdHzPg4D+WhwkCB0AF7W8EoVqvmlP2g0vAdPz4gR8+I6A
+FdGQtC52CMhX/1mHAeTjDCnuvTzZvKrACcVB9Ea12w10KLYbsgAr2+2vfAdiLUdUZDKHPPtWC+lS
+rvkTJtivU+YOSw7PCkWF7BIC7pTdp7WutqGCmVo0eHKfJxXcpkH++9ALeAQ8tfQw9K20JJW18fSA
+w/hs8fxs5FWjhNpYpUvQlqznN98K/pnaXQo373NufYHy1+yT3sSVEwBbClv7yOjrYrmyRe6ojw+Z
+xXziWk8r+VkFpotwvgW41vOuvkhd94rzr1Mj7WNEssTrJOQC5Uda2DPZkHgxBbZch2ru65Jmivr4
+93iTF157c6MZhJUSW+P5Xd+WoDrUwzcpMx7QdyZaNSPVsL7uD4xOKoqm4OcdyzEj4qqDvBLA0TJ8
+sQ4Fp0A5h7nNTuoUvxKMan0J4rRKc7T4eswuLEaTPCDtKpsmlTS+rG4jPaCOlPM++qrI6VMgJBZO
+L/zG7mLub/IYKmU6Svelyk91XQF23dhbSqlLjeLlGjwtlHhqRuFASVIgIqcxbsrxa6CSmTrHmxr0
+NU5hmEWblBPvZwYZhZMu2c/yTirvknIijyTRjFmgwpB73uJHv0oQotC6myXTGNCc0MihBMOsDQs3
+FhslJFQcH6VA0bze/FSZoGi+sM90lyrufQngenV1EVptFBx5DQYWEWXKOi2ZS6JQGYRh1R+EXA==
+
+
+--------------090404080405080108000909--
+

Added: james/mime4j/trunk/src/test/resources/testmsgs/very-long-boundary.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/very-long-boundary.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/very-long-boundary.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/very-long-boundary.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,15 @@
+Content-Type: multipart/mixed; boundary="0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  "
+
+multipart
+
+--0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+
+Text body
+--0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=? 
+The above line is similar to the boundary but miss a final space, so it
+should be part of the body.
+
+--0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  --
+epilogue
\ No newline at end of file

Added: james/mime4j/trunk/src/test/resources/testmsgs/very-very-long-boundary.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/very-very-long-boundary.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/very-very-long-boundary.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/very-very-long-boundary.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,15 @@
+Content-Type: multipart/mixed; boundary="0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzAB
 CDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOP
 RSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ
 '()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./
 :=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123
 456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abc
 defghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijkl
 mnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  "
+
+multipart
+
+--0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456
 789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdef
 ghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmno
 pqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwx
 yzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFL
 MNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUV
 WXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_
 ,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+
+Text body
+--0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456
 789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdef
 ghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmno
 pqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwx
 yzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFL
 MNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUV
 WXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_
 ,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=? 
+The above line is similar to the boundary but miss a final space, so it
+should be part of the body.
+
+--0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456
 789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdef
 ghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmno
 pqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwx
 yzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFL
 MNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUV
 WXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_
 ,-./:=?  0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  --
+epilogue
\ No newline at end of file

Added: james/mime4j/trunk/src/test/resources/testmsgs/weird-boundary.out
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/resources/testmsgs/weird-boundary.out?rev=680976&view=auto
==============================================================================
--- james/mime4j/trunk/src/test/resources/testmsgs/weird-boundary.out (added)
+++ james/mime4j/trunk/src/test/resources/testmsgs/weird-boundary.out Wed Jul 30 04:11:48 2008
@@ -0,0 +1,15 @@
+Content-Type: multipart/mixed; boundary="0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  "
+
+multipart
+
+--0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+
+Text body
+--0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=? 
+The above line is similar to the boundary but miss a final space, so it
+should be part of the body.
+
+--0123456789abcdefghijklmnopqrstuvwxyzABCDEFLMNOPRSTUVWXYZ'()+_,-./:=?  --
+epilogue
\ 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


Mime
View raw message