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
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 ...