IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

envoyer un E-mail à partir d'un programme java?


Sujet :

API standards et tierces Java

  1. #1
    Membre régulier Avatar de samworkflow
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    152
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 152
    Points : 80
    Points
    80
    Par défaut envoyer un E-mail à partir d'un programme java?
    bonjour,
    j'essai d'envoyer un e-mail à partir d'un programme java et j'ai suivi ce tuto dont j'ai trouver le code fournie
    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
    import javax.mail.internet.*;
    import javax.mail.*;
    import java.util.*;
     
    /**
     * Classe permettant d'envoyer un mail.
     */
    public class TestMail {
       private final static String MAILER_VERSION = "Java";
       public static boolean envoyerMailSMTP(String serveur, boolean debug) {
             boolean result = false;
             try {
                      Properties prop = System.getProperties();
                      prop.put("mail.smtp.host", serveur);
                      Session session = Session.getDefaultInstance(prop,null);
                      Message message = new MimeMessage(session);
                      message.setFrom(new InternetAddress("moi@chez-moi.fr"));
                      InternetAddress[] internetAddresses = new InternetAddress[1];
                      internetAddresses[0] = new InternetAddress("moi@chez-moifr");
                      message.setRecipients(Message.RecipientType.TO,internetAddresses);
                      message.setSubject("Test");
                      message.setText("test mail");
                      message.setHeader("X-Mailer", MAILER_VERSION);
                      message.setSentDate(new Date());
                      session.setDebug(debug);
                      Transport.send(message);
                      result = true;
             } catch (AddressException e) {
                      e.printStackTrace();
             } catch (MessagingException e) {
                      e.printStackTrace();
             }
             return result;
       }
     
       public static void main(String[] args) {
             TestMail.envoyerMailSMTP("10.10.50.8",true);
       }
    A l'adresse :http://jmdoudoux.developpez.com/cour...p-javamail.php
    l'ors de la compilation sur l'invite de commande
    :javac -classpath activation.jar;mail.jar;smtp.jar TestMail.java tout vas biens (pas d'erreurs de compilation )
    mais quant j'essai d'éxecuter le programme :
    java -classpath activation.jar;mail.jar;smtp.jar TestMail
    le message d'erreur suivant apparait
    :Exception in thread "main" java.lang.NoClassDefFoundError:javax/mail/messagingException

    j'ai utiliser :javamail-1.4.1 qui ne contiens pas activation.jar alor je l'ai telecharger séparement.
    je n'arrive pas à trouver ou est le probleme.
    merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 43
    Points : 48
    Points
    48
    Par défaut
    Aller, tu n'étais pas loin du tout...
    java -classpath .:mail.jar TestMail
    et je t'assure, ça fonctionne parfaitement

    Pour preuve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DEBUG: setDebug: JavaMail version 1.4.1
    DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
    DEBUG SMTP: useEhlo true, useAuth false
    Bon courage

    _______________________
    http://blog.ostyn.fr

  3. #3
    Membre régulier Avatar de samworkflow
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    152
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    bonjour,
    merci pour ta réponse francoisostyn mais voici ce qui m'affiche lors de l'exécution avec ta commande
    :Exception in thread "main" java.lang.NoclassDefFoundError:TestMail

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 43
    Points : 48
    Points
    48
    Par défaut
    Est-ce que tu es bien dans le répertoire où est généré le bytecode ?

  5. #5
    Membre régulier Avatar de samworkflow
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    152
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    oui je me trouve bien dans ce répertoire.a ++

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 120
    Points : 67
    Points
    67
    Par défaut
    Je travaille sous Eclipse et j'ai le même problème.
    java.lang.NoClassDefFoundError: javax/mail/Address


    Pourtant, j'ai bien ajouté les fichiers jar dans le build path de mon projet...

    J'obtiens cette erreur en lançant mon envoi de mail dans une servlet.

    Quand je teste dans une classe toute simple (en console.. mais dans le même projet), j'obtiens une erreur:
    Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: smtp.wanadoo.fr, port: 25;
    qui m'intrigue moins car je pense que je n'ai pas les droits suffisants. Mais il me semble que dans ce cas, les classes nécessaires sont bien trouvées.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 43
    Points : 48
    Points
    48
    Par défaut
    Bonsoir,

    Normalement, si tu as ajouté les lib (mail.jar et activation.jar) dans le Java Build Path d'Eclipse, tu ne devrait pas avoir d'erreur.
    (test effectué sans soucis... en "standalone" et avec Glassfish...).

    Concernant la deuxième erreur, afin de "protéger" leurs clients, les FAI bloquent par défaut le port 25 (smtp).
    Il faut, de ce fait, ouvrir ce port (chose possible chez Free...)
    De ce fait, cette erreur que tu as est totalement normale.

    François

    ____________________
    http://blog.ostyn.fr

Discussions similaires

  1. Réponses: 13
    Dernier message: 18/08/2008, 20h30
  2. Envoyer un e-mail à partir d'access
    Par Mmmuzik dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/03/2008, 14h21
  3. Envoyer un e-mail à partir d'un formulaire?
    Par Nonette dans le forum Access
    Réponses: 2
    Dernier message: 19/07/2006, 21h47
  4. Lancer un jar à partir d'un programme java
    Par bart64 dans le forum Langage
    Réponses: 7
    Dernier message: 09/06/2006, 10h29
  5. Réponses: 3
    Dernier message: 28/10/2005, 10h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo