Envoyer un mail / jsp

othmani
Envoyer un mail / jsp

Bonjour,
Je suis entrain de développer un site web et j'aimerai que le le visiteur de ce site, s'il veut envoyer un mail à l'administrateur du site, qu'il remplissse un formulaire "formulaire.jsp".
Les champs seront le contenu du message.
le sujet et l'adresse de l'administrateur sont fixés par défaut.
J'ai importer "mail.jar" bien placée dans CLASSPATH.
l'action du bouton "Envoyer" dans "formulaire.jsp" est l'exécution du page "envoi_mail.jsp" qui conient le code suivant:
//****************
String from = "from@XXXX.com";
String to = "to@YYYY.fr";
String subject = "Test";
String content = "Message à envoyer";
String host = "smtp.free.fr";

try
{
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
javax.mail.Session ession=javax.mail.Session.getDefaultInstanc(props,null);
MimeMessage message = new MimeMessage(ession);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);

//Envoi en HTML
message.setContent(content, "text/html");
//ou alors pour l'envoi en texte
message.setText(content);

Transport.send(message);
}
catch (Exception e)
{
System.err.println("L'envoi du mail a échoué : "+e.getMessage());
}
//*******************
Mais apres execution il m'affiche l'exception suivante:
org.apache.jasper.JasperException: Unable to compile class for JSP
.....
[javac] D:\Tomcat\work\Standalone\localhost\test\envoi_mail_jsp.java:74: cannot access javax.mail.internet.MimeMessage
[javac] bad class file: C:\test\WEB-INF\classes\javax\mail\internet\MimeMessage.class
[javac] class file has wrong version 48.0, should be 47.0
[javac] Please remove or make sure it appears in the correct subdirectory of the classpath.
[javac] MimeMessage message = new MimeMessage(ession);
[javac] ^
[javac] 1 error

Que pourrai je faire?
Que je met exactement dans host="?" ??
Les parametres de props.put("?", host)??
Merci d'avance

fredericmazue

Quote:
Que je met exactement dans host="?" ??
Les parametres de props.put("?", host)??

Rien à voir avec le problème.
Quote:
Que pourrai je faire?

Et bien je pense que quand un système émet un message d'erreur, la première chose à faire est de le lire. Oui je sais les messages d'erreur dans le contexte Java (et il n'y a pas que Java qui soit comme ça à ce niveau d'ailleurs :( ) sont illisibles, mais il faut les lire quand même.
Donc on te dit:

Quote:
[javac] D:\Tomcat\work\Standalone\localhost\test\envoi_mail_jsp.java:74: cannot access javax.mail.internet.MimeMessage
[javac] bad class file: C:\test\WEB-INF\classes\javax\mail\internet\MimeMessage.class
[javac] class file has wrong version 48.0, should be 47.0

C'est parfaitement clair ;)
On te dit là que tu utilises des classes qui ont été compilées pour une JVM et que tu essaies de les faire tourner sur une JVM de version inférieure.
Probablement les classes javax.mail que tu as téléchargées quelque part ont été compilées pour une JVM 1.4 et tu essaies de les faire tourner dans un serveur qui lui même tourne avec une JVM 1.3

(ou 1.5 vers 1.4, je ne me rappelle plus exactement les significations de 47.0, 48.0, etc, mais dans l'esprit, c'est ça le problème)

Remède:
- soit tu recompiles les classes javax.mail pour une JVM 1.3
- soit tu lances le serveurs d'application avec une JVM 1.4

L'un ou l'autre hein , pas les deux.;) :lol:
A priori lancer le serveur avec une JVM 1.4 ne sera pas possible facilement, dont tu dois recompiler javax.mail pour une JVM 1.3