Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2abcbf9c authored by cketti's avatar cketti Committed by GitHub
Browse files

Merge pull request #1512 from k9mail/use-mime4j-bodydescriptor

Use MIME4J's BodyDescriptor instead of reading Content-Type header ourselves
parents df761b93 600537f5
Loading
Loading
Loading
Loading
+12 −13
Original line number Diff line number Diff line

package com.fsck.k9.mail.internet;


import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -9,14 +10,22 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
import java.util.LinkedList;
import java.util.Locale;
import java.util.Set;
import java.util.TimeZone;
import java.util.UUID;

import android.support.annotation.NonNull;

import com.fsck.k9.mail.Address;
import com.fsck.k9.mail.Body;
import com.fsck.k9.mail.BodyPart;
import com.fsck.k9.mail.CompositeBody;
import com.fsck.k9.mail.Message;
import com.fsck.k9.mail.MessagingException;
import com.fsck.k9.mail.Multipart;
import com.fsck.k9.mail.Part;
import org.apache.commons.io.IOUtils;
import org.apache.james.mime4j.MimeException;
import org.apache.james.mime4j.dom.field.DateTimeField;
@@ -29,15 +38,6 @@ import org.apache.james.mime4j.stream.Field;
import org.apache.james.mime4j.stream.MimeConfig;
import org.apache.james.mime4j.util.MimeUtil;

import com.fsck.k9.mail.Address;
import com.fsck.k9.mail.Body;
import com.fsck.k9.mail.BodyPart;
import com.fsck.k9.mail.CompositeBody;
import com.fsck.k9.mail.Message;
import com.fsck.k9.mail.MessagingException;
import com.fsck.k9.mail.Multipart;
import com.fsck.k9.mail.Part;

/**
 * An implementation of Message that stores all of it's metadata in RFC 822 and
 * RFC 2045 style headers.
@@ -530,9 +530,8 @@ public class MimeMessage extends Message {

            Part e = (Part)stack.peek();
            try {
                String contentType = e.getContentType();
                String mimeType = MimeUtility.getHeaderParameter(contentType, null);
                String boundary = MimeUtility.getHeaderParameter(contentType, "boundary");
                String mimeType = bd.getMimeType();
                String boundary = bd.getBoundary();
                MimeMultipart multiPart = new MimeMultipart(mimeType, boundary);
                e.setBody(multiPart);
                stack.addFirst(multiPart);
+2 −4
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@ import com.fsck.k9.mail.Part;
import com.fsck.k9.mail.internet.MimeBodyPart;
import com.fsck.k9.mail.internet.MimeMessage;
import com.fsck.k9.mail.internet.MimeMultipart;
import com.fsck.k9.mail.internet.MimeUtility;
import com.fsck.k9.mailstore.util.FileFactory;
import org.apache.commons.io.IOUtils;
import org.apache.james.mime4j.MimeException;
@@ -150,9 +149,8 @@ public class MimePartStreamParser {
        public void startMultipart(BodyDescriptor bd) throws MimeException {
            Part part = (Part) stack.peek();
            try {
                String contentType = part.getContentType();
                String mimeType = MimeUtility.getHeaderParameter(contentType, null);
                String boundary = MimeUtility.getHeaderParameter(contentType, "boundary");
                String mimeType = bd.getMimeType();
                String boundary = bd.getBoundary();

                MimeMultipart multipart = new MimeMultipart(mimeType, boundary);
                part.setBody(multipart);