Best Practices - Senden von Javamail-Mime-Multipart-E-Mails - und Google Mail
Ich habe eine Tomcat-Anwendung, die Anforderungen zum senden von Bestätigungs-E-Mails etc. Ich habe kodiert, emailer mit Javamail - (mail.jar) zu senden multipart text/html-E-Mails. Ich basiert der code auf der Java EE-Beispiele. Ich bin mit dem SMTP MTA auf dem lokalen server.
Es funktioniert Super. In Outlook sehe ich die HTML-version. Wenn ich ziehen Sie es in den Outlook-spam-Ordner, ich sehe die text-version. Also interpretiere ich, dass es funktioniert.
Jedoch, wenn ich die E-Mails in Gmail, ich sehe nur die text-version. Ich weiß, der HTML-Code wird es (das ist, wo Outlook habe). Aber Gmail ist nicht, es zu zeigen... ich habe viele E-Mails von anderen Systemen, die zeigen, wie HTML in Gmail.
Kann jemand Punkt mich zu der Skillung, die zeigt, was ich bin fehlt? Gibt es spezielle Header muss ich erstellen?
Dank
Code sieht wie folgt aus:
Message message = new MimeMessage(session);
Multipart multiPart = new MimeMultipart("alternative");
try {
MimeBodyPart textPart = new MimeBodyPart();
textPart.setText(text, "utf-8");
MimeBodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(html, "text/html; charset=utf-8");
multiPart.addBodyPart(htmlPart);
multiPart.addBodyPart(textPart);
message.setContent(multiPart);
if(from != null){
message.setFrom(new InternetAddress(from));
}else
message.setFrom();
if(replyto != null)
message.setReplyTo(new InternetAddress[]{new InternetAddress(replyto)});
else
message.setReplyTo(new InternetAddress[]{new InternetAddress(from)});
InternetAddress[] toAddresses = { new InternetAddress(to) };
message.setRecipients(Message.RecipientType.TO, toAddresses);
message.setSubject(subject);
message.setSentDate(new Date());
Transport.send(message);
} catch (AddressException e) {
e.printStackTrace();
System.out.println("Error: "+e.getMessage());
} catch (MessagingException e) {
e.printStackTrace();
System.out.println("Error: "+e.getMessage());
} finally {
System.out.println("Email sent!");
}
InformationsquelleAutor der Frage PrecisionPete | 2013-02-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gelöst! Es scheint nach der multipart-MIME-spec, die die Reihenfolge der Teile sind wichtig. Sie sollte Hinzugefügt werden, in der Reihenfolge von low fidelity, high fidelity. So scheint es GMail folgt die Skillung und nutzt den letzten Teil. In meinem Fall hatte ich Sie HTML, Text. Ich habe gerade vertauscht, um Text -, HTML-und Google Mail macht es richtig...
d.h.
Danke für die Hilfe!
InformationsquelleAutor der Antwort PrecisionPete