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 de mail avec Javamail


Sujet :

API standards et tierces Java

  1. #1
    Membre régulier Avatar de kodo
    Profil pro
    Chef de projet technique
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chef de projet technique

    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 92
    Points
    92
    Par défaut Envoi de mail avec Javamail
    Bonjour,
    Je cherche à bien comprendre comment se passe "réellement" l'envoi de mail avec l'api javamail. J'ai trouvé sur internet un exemple. voila le 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
     
    package com.mkyong.common;
     
    import java.util.Properties;
     
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
     
    public class SendMailTLS {
     
    	public static void main(String[] args) {
     
    		final String username = "username@gmail.com";
    		final String password = "password";
     
    		Properties props = new Properties();
    		props.put("mail.smtp.auth", "true");
    		props.put("mail.smtp.starttls.enable", "true");
    		props.put("mail.smtp.host", "smtp.gmail.com");
    		props.put("mail.smtp.port", "587");
     
    		Session session = Session.getInstance(props,
    		  new javax.mail.Authenticator() {
    			protected PasswordAuthentication getPasswordAuthentication() {
    				return new PasswordAuthentication(username, password);
    			}
    		  });
     
    		try {
     
    			Message message = new MimeMessage(session);
    			message.setFrom(new InternetAddress("from-email@gmail.com"));
    			message.setRecipients(Message.RecipientType.TO,
    				InternetAddress.parse("to-email@gmail.com"));
    			message.setSubject("Testing Subject");
    			message.setText("Dear Mail Crawler,"
    				+ "\n\n No spam to my email, please!");
     
    			Transport.send(message);
     
    			System.out.println("Done");
     
    		} catch (MessagingException e) {
    			throw new RuntimeException(e);
    		}
    	}
    }
    D'abord, chez moi il marche bien, cependant lorsque je le teste au boulot, il marche pas, il me donne l'erreur suivant :
    Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;
    nested exception is:
    java.net.ConnectException: Connection timed out: connect
    at com.test.mailing.SendMail.main(SendMail.java:50)
    Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;
    nested exception is:
    java.net.ConnectException: Connection timed out: connect
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1706)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:525)
    at javax.mail.Service.connect(Service.java:313)
    at javax.mail.Service.connect(Service.java:172)
    at javax.mail.Service.connect(Service.java:121)
    at javax.mail.Transport.send0(Transport.java:190)
    at javax.mail.Transport.send(Transport.java:120)
    at com.test.mailing.SendMail.main(SendMail.java:45)
    Caused by: java.net.ConnectException: Connection timed out: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(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:284)
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:227)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1672)
    ... 7 more
    d’après mes recherches c'est un problème de firewall !!,donc c'est le port 587 qui pose problème !!
    Mais je comprends pas pourquoi ?? si c'est le problème, ça doit être au niveau du serveur smtp de gmail, qui n'autorise pas des connexions via ce port, pas chez moi !!, ou bien la requête créée par l'api javamail pour attaquer le serveur smtp, exige un port bloqué par le firewall de la société ??
    Si quelque peut m'expliquer ce problème, et comment ça se passe l'envoi de mail avec l'api javamail, je serai très reconnaissant.

    Merci

    Merci

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 619
    Points
    21 619
    Par défaut
    Citation Envoyé par kodo Voir le message
    exige un port bloqué par le firewall de la société ??
    Bah... Évidemment -_-°. Pourquoi tu en doutes si c'est ce qui t'a été dit ?

    Citation Envoyé par kodo Voir le message
    et comment ça se passe l'envoi de mail avec l'api javamail, je serai très reconnaissant.
    Il se connecte au serveur SMTP demandé, formate le mail demandé au format MIME, et l'envoie au serveur SMTP.

  3. #3
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 609
    Points
    19 609
    Par défaut
    Citation Envoyé par kodo Voir le message
    D'abord, chez moi il marche bien, cependant lorsque je le teste au boulot, il marche pas,

    [...]

    d’après mes recherches c'est un problème de firewall !!,donc c'est le port 587 qui pose problème !!
    Mais je comprends pas pourquoi ?? si c'est le problème, ça doit être au niveau du serveur smtp de gmail, qui n'autorise pas des connexions via ce port, pas chez moi !!,
    Non ça ne peut pas être ça puisque ça marche depuis chez toi. Le firewall de Google ne va pas autoriser ce qui arrive depuis chez toi mais pas ce qui arrive depuis ta société.

    Citation Envoyé par kodo Voir le message
    ou bien la requête créée par l'api javamail pour attaquer le serveur smtp, exige un port bloqué par le firewall de la société ??
    ?!?

    Ca veut tout simplement dire que les connexions sortantes sur le port 587 sont bloquées par le firewall de ta société.

    Parles en aux admins réseaux de ta société.

Discussions similaires

  1. [Prob] Envoi de mail avec JavaMail
    Par hannibal.76 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 11/06/2011, 13h44
  2. [javamail] Envoi de mail avec plusieurs images
    Par RamyBoulet dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 21/09/2009, 11h32
  3. [JavaMail] Problème d'authentification pr l'envoi de mail avec Yahoo
    Par hikamovic dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 07/06/2009, 12h51
  4. Envoi de mail avec javamail
    Par Heavy Metal Hero dans le forum Général Java
    Réponses: 4
    Dernier message: 03/06/2009, 14h54
  5. Réponses: 1
    Dernier message: 21/02/2007, 10h49

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