programme java pour envoyer des mails - Java - Programmation
Marsh Posté le 07-08-2005 à 12:35:38
si t'as lu mon topic, tu sais ce que signifie cette exception : il ne trouve pas MessagingException à l'execution => le classpath que tu utilises à l'execution n'inclut surement pas le jar JavaMail (mail.jar ou mail-api.jar)
Marsh Posté le 07-08-2005 à 12:42:37
OK j'essaie de revérifier tout ça, le pbm c'est que si je ferme l'éditeur de commande je dois tout recommencer (path et classpath) y a pas une solution pour le faire définitivement
Marsh Posté le 07-08-2005 à 12:57:08
Voici la commande pour le classpath sue j'ai fais :
C:\>SET CLASSPATH=%CLASSPATH%;C:\javamail-1.3.2\mail.jar;C:\jaf-1.1ea\activation.jar
Mais maintenant il me met ça :
Exception in thread "main" java.lang.NoClassDefFoundError: Envoi
Je vais craquer!!!
Marsh Posté le 07-08-2005 à 13:16:21
ça marche!!!!!!!!!!!
il manquait le classpath suivant : C:\javamail-1.3.3ea\mail.jar
Merci à Benou :-)
Marsh Posté le 07-08-2005 à 13:18:15
si tu avais bien lu mon topic, tu aurais vu qu'il y avait une méthode pratique qui consistait à créer des fichier batch pour fixer le classpath ...
et tu aurais aussi vu que si tu ne mets pas le '.' dans le classpath, il n'ira pas chercher les classes dans le répertoire courant => il ne trouvera pas ta classe Envoi
je sais que c'est pas évident au début, mais si tu fais bien gaffe et que tu procèdes par étapes, tu verras que tout marche correctement.
Et la première étape, c'est pas d'envoyer un mail, mais juste de faire un HelloWorld
Marsh Posté le 07-08-2005 à 13:19:19
Skyline_GTR a écrit : il manquait le classpath suivant : C:\javamail-1.3.3ea\mail.jar |
heu ... c'est surement pas ça qui a corrigé l'erreur du noclassdeffound sur ta classe Envoi, hein
Marsh Posté le 07-08-2005 à 13:21:01
salut
ben il est où ton constructeur?
tu l'appelle dans le main, mais il n'est pas déclaré ...
Marsh Posté le 07-08-2005 à 13:21:26
ok c'est bon j'aui fais un fichier .bat pour les classpath
Je ne suis pas un débutant :-) mais disons que ça fais très longtemps que je n'avais plus fais de java
Marsh Posté le 07-08-2005 à 13:23:24
fan_tomassss a écrit : salut |
Constructeur par défaut
Marsh Posté le 07-08-2005 à 13:25:20
au temps pour moi ça fait un p'tit temps que j'ai pas programmé.
Marsh Posté le 07-08-2005 à 13:26:08
Je ne suis pas l'auteur de ce programme (je ne serais jamais capable de faire ça!!)
Voici la source :
http://www.supinfo-projects.com/fr/2005/java%5Fmail/2/
Marsh Posté le 07-08-2005 à 13:29:36
Skyline_GTR a écrit : (je ne serais jamais capable de faire ça!!) |
tu vois bien que t'es débutant
(c'est pas une tare)
Marsh Posté le 07-08-2005 à 13:37:09
un dernier petit point dans le fichier .bat j'ai mis ça :
SET CLASSPATH=.
SET CLASSPATH=%CLASSPATH%;C:\jaf-1.1ea\activation.jar
SET CLASSPATH=%CLASSPATH%;C:\javamail-1.3.2\mail.jar
SET CLASSPATH=%CLASSPATH%;C:\javamail-1.3.3ea\mail.ja
Est ce que en rajoutanr la ligne suivante :
path = C:\Sun\AppServer\jdk\bin
je dois mettre aussi le point :
path = .
Marsh Posté le 07-08-2005 à 13:42:10
si tu poses cette question, c'est que tu n'as pas compris ce qu'était le classpath. je t'invite à relire mon topic.
on en rediscute après si tu n'as toujours pas compris.
Marsh Posté le 07-08-2005 à 13:51:40
C'est bon si j'ai bien compris, il faut faire ça :
SET CLASSPATH=.
SET CLASSPATH=%CLASSPATH%;C:\jaf-1.1ea\activation.jar
SET CLASSPATH=%CLASSPATH%;C:\javamail-1.3.2\mail.jar
SET CLASSPATH=%CLASSPATH%;C:\javamail-1.3.3ea\mail.jar
SET CLASSPATH=%CLASSPATH%;C:\Sun\AppServer\jdk\bin
Marsh Posté le 07-08-2005 à 13:58:59
Skyline_GTR a écrit : |
mais nan /o\
pourquoi est ce que tu veux mettre C:\Sun\AppServer\jdk\bin dans ton classpath ? y a pas de classes dans ce répertoire !
Tu confond classpath (chemins où java va aller chercher les fichiers .class) et path (chemins où l'OS va aller chercher les fichiers executables)
Marsh Posté le 07-08-2005 à 14:02:20
ok effectivement ça marche plus!
je dois juste rajouter path = C:\Sun\AppServer\jdk\bin
Marsh Posté le 07-08-2005 à 16:39:23
Pauvre benou.
Marsh Posté le 07-08-2005 à 12:17:42
Salut tout le monde,
J'essai d'exécuter un programme java qui permet en théorie d'envoyer des mails mais ça ne marche pas : à la compilation y a pas d'erreurs mais à l'exécution ça me met : "Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingException"
Jai lu le topic de benou sur ce sujet mais j'ai pas réussi à trouver mon erreur, j'utilise l'éditeur de commande de XP pour compiler et exécuter les programmes. Voici le code source du programme que j'ai appelé : Envoi.java
import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class Envoi {
/** Destinataire du message. */
protected String message_dest = "adresse@tiscali.fr";
/* Objet du message. */
protected String message_objet = "Re: Essai ";
/** Destinataire du message en copie (CC). */
protected String message_cc = "adresse@tiscali.fr";
/** Texte du message. */
protected String message_corps =
"Bonjour dans une semaine vous recevrez de " +
"plus amples détails sur " +
"le sujet de votre choix";
/** Objet session de JavaMail. */
protected Session session;
/** Objet message de JavaMail. */
protected Message mesg;
public void envoyerMail() {
// Nous devons passer les informations au serveur de messagerie sous
// forme de propriétés car JavaMail en comporte beaucoup...
Properties props = new Properties();
// Votre réseau doit donner au serveur SMTP local le nom "nom_du_serveur_smtp"
props.put("mail.smtp.host", "smtp.tiscali.fr" );
// Créer lobjet Session.
session = Session.getDefaultInstance(props, null);
session.setDebug(true); //activer le mode verbeux !
try {
// Créer un message.
mesg = new MimeMessage(session);
// Adresse From - Indiquer la provenance du message
mesg.setFrom(new InternetAddress("adresse@tiscali.fr" ));
// Adresse TO.
InternetAddress toAddress = new InternetAddress(message_dest);
mesg.addRecipient(Message.RecipientType.TO, toAddress);
// Adresse CC.
InternetAddress ccAddress = new InternetAddress(message_cc);
mesg.addRecipient(Message.RecipientType.CC, ccAddress);
// Objet.
mesg.setSubject(message_objet);
// Corps du message.
mesg.setText(message_corps);
// Enfin, envoyer le message !
Transport.send(mesg);
} catch (MessagingException ex) {
while ((ex = (MessagingException)ex.getNextException()) != null) {
ex.printStackTrace();
}
}
}
/** Programme principal*/
public static void main(String[] av) {
Envoi env = new Envoi();
env.envoyerMail();
}
}