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!