web-dev-qa-db-fra.com

comment envoyer un e-mail HTML

Je dois envoyer un fichier HTML par e-mail mais pas en tant que pièce jointe.

Message simpleMessage = new MimeMessage(mailSession);
try {
   fromAddress = new InternetAddress(from);
   toAddress = new InternetAddress(to);

} catch (AddressException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
}

try {
    simpleMessage.setFrom(fromAddress);
    simpleMessage.setRecipient(RecipientType.TO, toAddress);

    simpleMessage.setSubject(subject);
    simpleMessage.setText(text);

    Transport.send(simpleMessage);
} catch (MessagingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

Il envoie simplement un e-mail avec un message texte. Je souhaite envoyer du contenu HTML stocké dans un autre fichier mais pas en tant que pièce jointe

60
Prerna

Ne pas transposer votre MimeMessage en Message:

MimeMessage simpleMessage = new MimeMessage(mailSession);

Ensuite, lorsque vous souhaitez définir le corps du message, appelez

simpleMessage.setText(text, "utf-8", "html");

ou appeler

simpleMessage.setContent(text, "text/html; charset=utf-8");

Si vous préférez utiliser un jeu de caractères autre que utf-8, remplacez-le à l'endroit approprié.

JavaMail a une couche d'abstraction supplémentaire et inutile qui vous laisse souvent des classes comme Multipart, Message et Address, qui ont toutes beaucoup moins de fonctionnalités que les vraies sous-classes (MimeMultipart, MimeMessage et InternetAddress) qui sont en train de se construire ...

116
dkarp