Problème d'envoi de mail dans une application web
Bonjour tout le monde,
J'ai un souci d'envoi de mail,
Le code suivant fonctionne parfaitement dans une classe de test ou un main.
J’utilise exactement le même code dans mon application web, je reçois bien mail, mais le contenu qui est du HTML est mal interprété.
J’ai exploré les pistes liées au charset, sans succès
Environnement :
java 1.5
Tomcat 5.0
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("<html>");
stringBuffer.append("<body>");
stringBuffer.append("<p>Madame, Monsieur, </p>");
stringBuffer.append("<p> HELLO WORD");
stringBuffer.append("</p>");
stringBuffer.append("<p>Très sincèrement.</p>");
stringBuffer.append("<br><br>");
stringBuffer.append("</body></html>");
try {
String smtp_server = PARAM_SMTP_SERVER;
String sender_email = PARAM_SENDER_EMAIL;
String mail_user = PARAM_EMAIL_USER;
String mail_pwd = PARAM_EMAIL_PWD;
Properties props = System.getProperties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", smtp_server);
props.setProperty("mail.user",mail_user);
props.setProperty("mail.password", mail_pwd);
//Initialisation de l'envoi d'email.
Session mailSession = Session.getDefaultInstance(props, null);
Transport transport = mailSession.getTransport("smtp");
transport.connect(smtp_server, mail_user, mail_pwd);
//construit une adresse mail à partir de l'adresse et du nom do user
InternetAddress senderInternetAdress = new InternetAddress(sender_email);
//instance d'un email.
MimeMessage message = new MimeMessage(mailSession);
// On set le sujet du mail, on tente de l'encoder pour assurer le support des caractères accentués.
message.setSubject("Subject mail ");
// create and fill the first message part
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(stringBuffer.toString());
//mbp1.setContent(stringBuffer.toString(),"text/html; charset=utf-8");
mbp1.setContent(stringBuffer.toString(),"text/html; charset=ISO-8859-1");
// create the Multipart and add its parts to it
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
// On set le destinataire de l'email.
message.setContent(mp);
InternetAddress iadress=new InternetAddress(myEmail);
message.addRecipient(Message.RecipientType.TO, iadress);
message.setFrom(senderInternetAdress);
//Envoi d'email.
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
transport.close();
}catch (Exception e) {
e.printStackTrace();
} |
Je pense que c'est lié fortement à l'application web.