Ho un'applicazione Tomcat che deve inviare e-mail di conferma ecc. Ho codificato l'e-mail con Javamail (mail.jar) per inviare e-mail multipart text/html. Ho basato il codice sugli esempi di Java EE. Sto utilizzando l'MTA SMTP sul server locale.Best practice - Invio di e-mail multiparte javamail mime - e gmail
funziona benissimo. In Outlook, vedo la versione HTML. Se lo trascino nella cartella spam di Outlook, vedo la versione di testo. Quindi lo interpreto dicendo che funziona.
Tuttavia, se visualizzo le e-mail in Gmail, vedo solo la versione di testo. So che l'HTML è lì (è lì che l'ha preso Outlook). Ma Gmail non lo mostra ... Ho molte e-mail da altri sistemi che mostrano come HTML in Gmail.
Qualcuno può indicarmi le specifiche che mostrano cosa mi manca? Ci sono intestazioni speciali che devo creare?
Grazie
codice simile a questo:
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!");
}
Il tuo codice sembra buono. Gmail potrebbe mostrare volutamente la versione in testo semplice per evitare tutti i problemi con il rendering sicuro del contenuto html. Data una scelta, potrebbe preferire il testo normale. –