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

avec Java Discussion :

Envoyer un Email avec java


Sujet :

avec Java

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Points : 85
    Points
    85
    Par défaut Envoyer un Email avec java
    Bonjour,

    je veux envoyer des mail avec mon application j'ai trouvé ce code le voici :
    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
     
    package ripon.java.mail;
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;
     
    public class SendEmail
    {
    public static void main(String [] args)
    {    
        // Sender's email ID needs to be mentioned
         String from = "un_compte@gmail.com";  //"test@gmail.com";
         String pass ="le_mot_de_passe_du_compte";
        // Recipient's email ID needs to be mentioned.
       String to = "compte_distinataire@yahoo.fr";  //"ripon420@yahoo.com";
     
       String host = "smtp.gmail.com";
     
       // Get system properties
       Properties properties = System.getProperties();
       // Setup mail server
       properties.put("mail.smtp.starttls.enable", "true");
       properties.put("mail.smtp.host", host);
       properties.put("mail.smtp.user", from);
       properties.put("mail.smtp.password", pass);
       properties.put("mail.smtp.port", "25");
       properties.put("mail.smtp.auth", "true");
     
       // Get the default Session object.
       Session session = Session.getDefaultInstance(properties);
     
       try{
          // Create a default MimeMessage object.
          MimeMessage message = new MimeMessage(session);
     
          // Set From: header field of the header.
          message.setFrom(new InternetAddress(from));
     
          // Set To: header field of the header.
          message.addRecipient(Message.RecipientType.TO,
                                   new InternetAddress(to));
     
          // Set Subject: header field
          message.setSubject("This is the Subject Line!");
     
          // Now set the actual message
          message.setText("This is actual message");
     
          // Send message
          Transport transport = session.getTransport("smtp");
          transport.connect(host, from, pass);
          transport.sendMessage(message, message.getAllRecipients());
          transport.close();
          System.out.println("Sent message successfully....");
       }catch (MessagingException mex) {
          mex.printStackTrace();
       }
    }
    }
    et j'ai ajouté l'API JavaMail API et Java Activation Framework donc ( mail.jar et activation.jar) dans le projet ..bref,mais une fois le code compilé j'ai l'erreur suivante :

    javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25;
    nested exception is:
    java.net.ConnectException: Connection timed out: connect
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
    at javax.mail.Service.connect(Service.java:295)
    at javax.mail.Service.connect(Service.java:176)
    at ripon.java.mail.SendEmail.main(SendEmail.java:50)
    Caused by: java.net.ConnectException: Connection timed out: connect
    at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:321)
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:237)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927)
    ... 4 more



    Ma question pourquoi j'ai cette erreur ? est-ce que quelqu'un peut m'explique pourquoi cette erreur?? et comment remédier


    Merci d'avance pour vos lumières

    A+

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    de mémoire, ce n'est pas 465 le port smtp de Gmail ?

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par plawyx Voir le message
    de mémoire, ce n'est pas 465 le port smtp de Gmail ?
    j'ai ressayé le port 465 mais sa donnait le meme resultat !!!!

    une question comment je peux vérifier que ce port est libre et il n'est pas bloqué ???

    A+

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nmap -Pnv 173.194.66.108
    donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Not shown: 996 filtered ports
    PORT    STATE SERVICE
    465/tcp open  smtps
    587/tcp open  submission
    993/tcp open  imaps
    995/tcp open  pop3s

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par zpico Voir le message
    j'ai ressayé le port 465 mais sa donnait le meme resultat !!!!

    une question comment je peux vérifier que ce port est libre et il n'est pas bloqué ???

    A+
    A priori, tu ne cherche pas un port libre, mais un port occupé. Si c'est libre sur le serveur, y aura rien pour y répondre

    Pour le reste, il faut toujours aller chercher la doc de ton provier email (ici gmail) pour savoir quelle config tu dois mettre.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Ici il vaut mieux commencer par se pencher sur la doc du provider de bibliothèque de développement.

    Car les paramètres de GMail sont parfaitement standards pour du TLS-only. C'est juste que Session.getDefaulInstance() ne peut pas du tout être utilisé comme ça. C'est Session.getInstance().
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Port gmail
    Pour faire un envoie de mail via le smtp de gmail le port c'est 587.
    Il y a quelques années j'avais réussit a faire un client smtp qui envoyait des email en utilisant gmail simplement via des socket.
    Aujourd'hui leur système d'authorisation est tellement complexe qu'il faut passer par javamail.
    Reste que je suis quasiment au même point que vous à savoir mon client javamail n'est pas autoriser à faire l'envoie de mail.

    J'ai activé la fonction sous gmail pour l'utilisation d'application moins sécure.
    rien y fait.

    Message d'erreur :

    javax.mail.AuthenticationFailedException: 534-5.7.14 <https://accounts.google.com/Continue...&plt=AKgnsbu9M
    534-5.7.14 tA1wVxRQ64urt7APp5Kld1tU3xg6kJlMYSeCPFq1gCgW1yygY4CbzGc05cwavg-vM0CZRT
    534-5.7.14 YRNJhv-vhYWZPpQYSH7Q-2EDvE9DX_bfK2RZTfDYW4qD9WrTg0uEum0zRo11kEw4Da8Mml
    534-5.7.14 Hu2WeQd72KL1TfuzBBB-ebRgLr7GbXXVKLfwRWLwWH8zJx5I1UMmM4Nq6lYqpTSei617tl
    534-5.7.14 CheqLuA> Please log in via your web browser and then try again.
    534-5.7.14 Learn more at
    534 5.7.14 https://support.google.com/mail/bin/...y?answer=78754 cr6sm11467577wjb.44 - gsmtp

    at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:826)
    at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:761)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685)
    at javax.mail.Service.connect(Service.java:317)
    at javax.mail.Service.connect(Service.java:176)
    at sendmail.sendmail.envoyerMailSMTP(sendmail.java:80)
    at sendmail.sendmail.main(sendmail.java:95)


    Code de ma fonction :
    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
     
    public  boolean envoyerMailSMTP(boolean debug) {
    	boolean result = false;
    	try {
    	Properties prop = System.getProperties();
    	prop.put("mail.smtp.host", getServeur());
    	prop.put("mail.smtp.port", getPort());
    	prop.put("mail.smtp.auth", "true");
    	prop.put("mail.smtp.starttls.enable", true);
    	Authenticator auth = new Authenticator(){
    		protected PasswordAuthentication getPasswordAuthentication() {
    		return new PasswordAuthentication(getIdentifiant(), getPass());}};
     
    	Session session = Session.getDefaultInstance(prop,auth);
     
    	Message message = new MimeMessage(session);
    	message.setFrom(new InternetAddress(getMailEnvoyeur()));
    	InternetAddress[] internetAddresses = new InternetAddress[1];
    	internetAddresses[0] = new InternetAddress(getMailDestinataire());
     
    	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;
    	}

    Cdlmt Webbe

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Et pourquoi n'as-tu pas fait ce que j'ai dit de faire ? Juste avant ton propre post...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Envoyer un email avec Outlook
    Par moumicha dans le forum Access
    Réponses: 17
    Dernier message: 19/07/2006, 10h58
  2. Envoyer des email avec PHP
    Par dolf13 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 12/07/2006, 11h49
  3. Envoyer un Email avec Outlook à partir d'access
    Par pilotcoater dans le forum Access
    Réponses: 1
    Dernier message: 13/03/2006, 21h04
  4. [VBA]envoyer un email avec un fichier joint à partir d'excel
    Par mcay dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 21/12/2005, 11h21
  5. [FPDF] Créer un PDF et l'envoyer par email avec PHPMailer
    Par nico33307 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 12/12/2005, 23h49

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