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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.