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

Commit 600537f5 authored by Vincent Breitmoser's avatar Vincent Breitmoser
Browse files

use mimeType and boundary values from BodyDescriptor rather than header values

parent a58ca462
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);