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 :

Envoi d'un mail


Sujet :

API standards et tierces Java

  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2005
    Messages : 259
    Par défaut Envoi d'un mail
    Bonjour,

    J'aimerais envoyer un mail depuis mon application...

    Voici mon code:
    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
    public SendMail(String to[ ], String subject, String message , String from) throws MessagingException
    {
     
    //Initialise les informations de connexion à bluewin
    Properties props = new Properties();
    props.setProperty("mail.transport.protocol", "smtp");
    props.setProperty("mail.host", "mail.bluewin.ch");
    props.setProperty("mail.port", "25");
     
    //Récupère la session par défault
    session = Session.getDefaultInstance(props, null);
     
    //Création d'un message
    Message msg = new MimeMessage(session);
     
    //Initialise l'émetteur
    InternetAddress addressFrom = new InternetAddress(from);
    msg.setFrom(addressFrom);
     
    //Initialise les destinataires
    InternetAddress[] addressTo = new InternetAddress[to.length]; 
    for (int i = 0; i < to.length; i++)
    {
    addressTo[i] = new InternetAddress(to[i]);
    }
     
    msg.setRecipients(Message.RecipientType.TO, addressTo);
     
    //Place le sujet du mail
    msg.setSubject(subject); 
     
    //Première partie du message
    BodyPart messageBodyPart = new MimeBodyPart();
     
    //Contenu du message
    messageBodyPart.setText(message);
     
    //Ajout de la première partie du message dans un objet Multipart
    Multipart multipart = new MimeMultipart();
    multipart.addBodyPart(messageBodyPart);
     
    //Partie de la pièce jointe
    /*messageBodyPart = new MimeBodyPart();
    DataSource source = new FileDataSource("Exportation.txt");
    messageBodyPart.setDataHandler(new DataHandler(source));
    messageBodyPart.setFileName(videoname);*/
     
    //Ajout de la partie pièce jointe
    multipart.addBodyPart(messageBodyPart);
     
    //On ajoute le tout au message
    msg.setContent(multipart);
     
    //Envoi du message
    Transport.send(msg);
    }
    Et voici l'appel de la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new SendMail(tab,"Exportation de données","message","<A href="mailto:nicolas.lapaire@he-arc.ch");[/CODE">adressr e-mail");
    Quand je clique sur le bouton pour envoyer le mail, il me vient l'erreur suivante:

    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/activation/DataSource
    at exportation.SendMail.<init>(
    SendMail.java:29)

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Elle est à quelle ligne l'erreur?

  3. #3
    Membre expérimenté
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Par défaut
    perso pour envoyer des mail j'utilise plutot les socket :
    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
     
    import java.io.*;
    import java.net.Socket;
    import java.util.Date;
    import java.util.StringTokenizer;
    public class MailIo {
     public MailIo() {
     }
     public static boolean sendMail(Socket sock, String localHost,
       String Destinataire, String from, String subject, String message)
       throws IOException {
      out = new PrintWriter(sock.getOutputStream());
      in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
      receive();
      send("HELO " + localHost);
      receive();
      send("MAIL FROM: <" + from + ">");
      receive();
      send("RCPT TO: <" + Destinataire + ">");
      receive();
      send("DATA");
      receive();
      send("Subject: " + subject);
      send("Date: " + new Date());
      send("Reply-To:" + from);
      send("To: " + Destinataire);
      StringTokenizer tokenizer = new StringTokenizer(message, "\n");
      while (tokenizer.hasMoreTokens())
       send(tokenizer.nextToken());
      send(".");
      receive();
      send("QUIT");
      receive();
      sock.close();
      return true;
     }
     private static void receive() throws IOException {
      String line = in.readLine();
      if (line != null) {
       System.out.println(line);
       System.out.println("\n");
      }
     }
     private static void send(String s) {
      System.out.print(s);
      System.out.print("\r\n");
      System.out.flush();
      out.print(s);
      out.print("\r\n");
      out.flush();
     }
     private static BufferedReader in;
     private static PrintWriter out;
    }

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2005
    Messages : 259
    Par défaut
    L'erreur est a la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //Création d'un message
    Message msg = new MimeMessage(session);
    Et il met également cette erreur à la ligne d'appel de la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new SendMail(tab,"Exportation de données","Salutation","email");

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2005
    Messages : 259
    Par défaut
    Daedric, les paramètres de ta fct sont les suivants:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public static boolean sendMail(Socket sock, String localHost,
       String Destinataire, String from, String subject, String message)
    Pour le paramètre socket, tu déclare simplement un socket de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Socket sock = (Socket)null;
    ??

    Pour le paramètre localhost, je ne vois pas comment le faire...

  6. #6
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Tu as bien ajouté les .jar de javamail dans ton projet ? Car on dirait qu'il ne trouve pas les classes

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2005
    Messages : 259
    Par défaut
    les .jar de javamail? Oui je les ai installés, il me mettait une erreur avant que je le fasse....

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Si je me souviens bien de ce que mon prof disait quand il nous a parlé de java mail il faut aussi rajouter le java activation framework, en plus ca coincide avec ton message d'erreur.
    En tous cas cette erreur me semble caractéristique d'un oubli de jar.

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Si je me souviens bien de ce que mon prof disait quand il nous a parlé de java mail il faut aussi rajouter le java activation framework, en plus ca coincide avec ton message d'erreur.
    En tous cas cette erreur me semble caractéristique d'un oubli de jar.

  10. #10
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2005
    Messages : 259
    Par défaut
    En effet il s'agissait de java activation.

    Merci pour vos réponses.

    Comment peut-on mettre un sujet comme étant résolu?
    Je ne trouve pas....

  11. #11
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Tu cliques sur outil de la discussion tout en haut du sujet et tu clique sur mettre résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. L'envois de mail ne m'envois pas de mail ...
    Par PrinceMaster77 dans le forum ASP
    Réponses: 10
    Dernier message: 27/10/2004, 16h28
  2. Envois d'un mail Avec CDont
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 25/10/2004, 17h34
  3. [TIdSMTP] Envoi d'un mail avec authentification ?
    Par BACUS dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/06/2004, 16h18
  4. Envoi d'un mail automatiquement
    Par batmat86 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/06/2004, 09h20
  5. Envoi d'un mail en VBA: outlook ne se lance pas
    Par Hannibal dans le forum VBA Access
    Réponses: 4
    Dernier message: 01/06/2003, 15h24

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