JavaMail: Text und HTML anzeigen lassen


#1

Hallo,
ich schreibe gerade einen Mail-Client für Android. Mein Problem bei der Weiterleiten-Funktion ist, dass wenn ich eine HTML-Mail weiterleite, lediglich die HTML-Mail in Thunderbird angezeigt wird und nicht meine eigene Nachricht, die mit Plain-Text kodiert ist.
Ich habe mal den Mail-Quellcode verglichen, wenn ich eine HTML-Mail mit Thunderbird weiterleite und es gibt kaum Unterschiede:

Weiterleitung durch meine E-Mail-App, wo nur die HTML-Nachricht angezeigt wird.

MIME-Version: 1.0
Content-Type: multipart/alternative; 
	boundary="----=_Part_3_19981178.1457597568430"

------=_Part_3_19981178.1457597568430
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Das ist meine eigene Nachricht, die in Thunderbird nicht angezeigt wird

Max Müller wrote:
-------------
TEXT/HTML; charset=windows-1252
------=_Part_3_19981178.1457597568430
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
   Dies wird angezeigt!
</head>
</html>

Weiterleitung mit Thunderbird. Alles wird angezeigt.

MIME-Version: 1.0
In-Reply-To: <24917803.4.1457597568430.JavaMail.root@localhost>
Content-Type: multipart/alternative;
 boundary="------------070708010700080802060801"

This is a multi-part message in MIME format.
--------------070708010700080802060801
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Von Thunderbird weitergeleitet. Dieser Text wird angezeigt.

--------------070708010700080802060801
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
      Dies wird angezeigt!
</head>
</html>

Was auffällt ist, dass bei der Thunderbird-Version format=flowed hinzugekommen ist. Ist das wirklich ausschlaggebend? Leider habe ich es nicht geschafft dies einzubauen.

Meine Java-Code ist folgender:

        MimeMessage message = null;
        final Multipart multiPart = new MimeMultipart("alternative");

        try {
            //Obtain the default mail session
            final Session session = ProtocolUtilities.getDefaultSessions();
            session.setDebug(true);

            MimeBodyPart textPart = new MimeBodyPart();

            textPart.setText(textContent, "utf-8");

            //Construct the mail textContent
            message = new MimeMessage(session);
            message.setText(textContent);
            message.setContent(multiPart);
            message.setSubject(subject);
            message.setFrom(new InternetAddress(emailAddress, userName));

            message.addRecipients(MimeMessage.RecipientType.TO, toAddress(TOs));
            message.addRecipients(MimeMessage.RecipientType.BCC, toAddress(BCCs));
            message.addRecipients(MimeMessage.RecipientType.CC, toAddress(CCs));

            multiPart.addBodyPart(textPart);

            if (fromHtmlContent.length() > 0) {

            // HTML-Zitat hinzu
            if (fromHtmlContent.length() > 0) {
                final MimeBodyPart html = new MimeBodyPart();
                html.setContent(fromHtmlContent, "text/html; charset=utf-8");

                multipart.addBodyPart(html);
            }

            message.setContent(multipart);

            message.saveChanges();

            //Use Transport to deliver the textContent
            final Transport transport = session.getTransport("smtp");
            transport.connect( outgoingServer, emailAddress, password);
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();

        } catch (MessagingException | IOException e) {
            Log.e(TAG, e.toString());
        }
    }

Ursprünglich habe ich gedacht, dass ich für mein Vorhaben multipart/related nehmen muss, aber Thunderbird kriegt das alles mit multipart/alternative hin.

Weiß jemand weiter?

Danke im Voraus!