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 :

[Javamail] Authentification obligatoire?


Sujet :

API standards et tierces Java

  1. #1
    Membre éclairé
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Par défaut [Javamail] Authentification obligatoire?
    Bonjour,

    j'essaye d'envoyer un mail avec JavaMail.

    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
        public static void sendMail(String sender, String receiver, Mail mail){
            String from = sender;
            String to = receiver;
            String subject = mail.getTitle();
            String content = mail.getMail();
     
            try {
                Properties props = System.getProperties();
                props.put("mail.smtp.host", "smtp.gmail.com");
                props.put("mail.smtp.port", "587");
                Session session = Session.getDefaultInstance(props, null);
                MimeMessage message = new MimeMessage(session);
                message.setFrom(new InternetAddress(from));
                message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
                message.setSubject(subject);
     
                //Envoi en HTML
                message.setContent(content, "text/html");
     
                javax.mail.Transport.send(message);
     
            } catch (Exception e) {
                System.err.println("the sending failed : "+e.getMessage());
            }
        }
    je n'ai pas d'erreur à l'execution de cette methode mais je n'ai pas non plus de mail a l'arrivé dans ma boite.
    l'authentification est elle necessaire ou pas. j'ai lu ici que ce n'etait pas forcement le cas

  2. #2
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    Je peux me tromper bien sur mais je pense que l'authentification doit être obligatoire ( dans le cas de GMail je veux dire ).

    Ayant déjà configuré des serveurs mails, je doute que Google laisse une ouverture à leur serveur smtp a des spammeurs ...

    Le plus étonnant, c'est qu'une erreur aurait du etre lancée je pense.

    Essaie ceci dans une console dos ou shell :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    telnet smtp.gmail.com 587
    helo localhost
    mail from: tonemail@tondomaine.com
    rcpt to: email.destination@domainedestination.com
    data
    blablabla
    .
    Ca envoie un mail "simple" via le protocol SMTP.
    Et tu devrais voir les réponses du serveur
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  3. #3
    Membre éclairé
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Par défaut
    ca n'as pas l'air de fonctionner:

    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
    florian@HP-QSPIN:~$ telnet smtp.gmail.com 587
    Trying 64.233.183.109...
    Connected to gmail-smtp.l.google.com.
    Escape character is '^]'.
    220 mx.google.com ESMTP 2sm1641618nfv
    helo    
    250 mx.google.com at your service
    hello
    502 5.5.1 Unrecognized command 2sm1641618nfv
    helo localhost
    250 mx.google.com at your service
    mail from: yyyy@qspin.be
    530 5.7.0 Must issue a STARTTLS command first 2sm1641618nfv
    rcpt to xxxxxx@gmail.com
    530 5.7.0 Must issue a STARTTLS command first 2sm1641618nfv
    data
    530 5.7.0 Must issue a STARTTLS command first 2sm1641618nfv
    exit
    502 5.5.1 Unrecognized command 2sm1641618nfv
    quit
    221 2.0.0 mx.google.com closing connection 2sm1641618nfv
    Connection closed by foreign host.
    florian@HP-QSPIN:~$

  4. #4
    Membre expérimenté Avatar de coco62
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 237
    Par défaut
    Je penche aussi pour le user/password
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Session session = Session.getDefaultInstance(props);
    session.setDebug(true);
     
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
    message.setSubject("Hello");
    message.setText("Hello World");
     
    Transport tr = session.getTransport("smtp");
    tr.connect(smtpHost, username, password);
    message.saveChanges();

  5. #5
    Membre éclairé
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Par défaut
    salut,

    J'ai modifier ma fonction comme suivant :

    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
        public static void sendMail(String sender, String receiver, Mail mail){
            String from = sender;
            String to = receiver;
            String subject = mail.getTitle();
            String content = mail.getMail();
     
            try {
                Properties props = System.getProperties();
                props.put("mail.smtp.host", "smtp.gmail.com");
                props.put("mail.smtp.port", "587");
                Session session = Session.getDefaultInstance(props, null);
                MimeMessage message = new MimeMessage(session);
                message.setFrom(new InternetAddress(from));
                message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
                message.setSubject(subject);
     
                //Envoi en HTML
                message.setContent(content, "text/html");
     
                Transport tr = session.getTransport("smtp");           
                tr.connect("smtp.gmail.com", "monUserame", "monpasswrd");
                message.saveChanges();
     
                javax.mail.Transport.send(message);
     
            } catch (Exception e) {
                System.err.println("the sending failed : "+e.getMessage());
            }
        }
    je 'nai pas de message d'erreur par conte je n'ai pas non plus de mail à l'arrivé

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 897
    Billets dans le blog
    54
    Par défaut
    Peux-tu essayer de rajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    props.put("mail.smtp.auth", "true");
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  7. #7
    Membre éclairé
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Par défaut
    Citation Envoyé par bouye
    Peux-tu essayer de rajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    props.put("mail.smtp.auth", "true");
    je l'avias rajouté juste apres avoir poste et j'ai toujours la meme chose.

    mes parametres de serveur sont pourtant bon?

  8. #8
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    En cherchant un peu sur google, je suis tombé sur ceci :

    http://www.jscape.com/articles/sendi...ssl_gmail.html
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  9. #9
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 897
    Billets dans le blog
    54
    Par défaut
    Gmail fonctionne avec cette API externe car elle supporte les connections sécurisées ?
    Regarde quand même dans la doc et la FAQ JavaMail (chez Sun) s'il n'est pas possible d'activer une connection SSL d'une manière ou d'un autre.

    EDIT - Sinon y a ca : How do I access Gmail with JavaMail?

    Apparement il faut bien activer SSL. Voir le code source de la démo dont ils parlent (stmpsend).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  10. #10
    Membre éclairé
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Par défaut
    Citation Envoyé par Hikage
    En cherchant un peu sur google, je suis tombé sur ceci :

    http://www.jscape.com/articles/sendi...ssl_gmail.html
    merci ,
    j'ai essayé avec ta méthode : 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
            SmtpSsl smtp = null;
            // gmail username - CHANGE THIS
            String username = "xxxxx@gmail.com";
            // gmail password - CHANGE THIS
            String password = "yyyyy";
     
            // address to send mail to - CHANGE THIS
            String to = receiver;
            try {
                // create a new SmtpSsl instance connecting securely via port 465 using implicit SSL
                smtp = new SmtpSsl("smtp.gmail.com",465);
     
                // establish secure connection
                smtp.connect();
     
                // login using gmail account details
                smtp.login(username,password);
     
                // create new email message
                EmailMessage message = new EmailMessage();
                message.setTo(to);
                message.setFrom(sender);
                message.setSubject(mail.getTitle());
                message.setBody(mail.getMail());
     
                // send message
                smtp.send(message);
     
                // disconnect
                smtp.disconnect();
            } catch(Exception e) {
                // capture any exception and print to console
                e.printStackTrace();
            }
    et l'erreur que je recois:

    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
    com.jscape.inet.smtp.SmtpException: Unsupported record version Unknown-50.49
            at com.jscape.inet.smtpssl.SmtpSsl.disconnect(Unknown Source)
            at be.qspin.qats.business.Mails.sendMail(Mails.java:142)
            at be.qspin.qats.struts.action.SendMailAction.execute(SendMailAction.java:52)
            at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
            at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
            at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
            at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
            at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
            at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
            at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
            at java.lang.Thread.run(Thread.java:595)

  11. #11
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    Heu oui, mais j'ai jamais essayer moi :-)

    J'ai juste fait une recherche dans google, et ca m'avait l'air intéressant ..

    Donc je ne sais pas t'aider plus, désolé
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  12. #12
    Membre éclairé
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Par défaut
    Citation Envoyé par bouye
    Gmail fonctionne avec cette API externe car elle supporte les connections sécurisées ?
    Regarde quand même dans la doc et la FAQ JavaMail (chez Sun) s'il n'est pas possible d'activer une connection SSL d'une manière ou d'un autre.

    EDIT - Sinon y a ca : How do I access Gmail with JavaMail?

    Apparement il faut bien activer SSL. Voir le code source de la démo dont ils parlent (stmpsend).
    Quant à ta solution, je n'ai pas très bien compris, enfin je vais essayer de modifier l'exemple.

  13. #13
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 18
    Par défaut
    Citation Envoyé par CPI_en_mousse Voir le message
    Quant à ta solution, je n'ai pas très bien compris, enfin je vais essayer de modifier l'exemple.
    Est ce que t'as trouve une solution ou pas?

    Parce que moi aussi je bute sur le meme probleme a savoir envoyer un email en utilisant gmail, mais ca ne marche pas et j'ai fouille dans le forum et j'ai vu que c'etait un probleme recurrent?

    Merci

Discussions similaires

  1. [JavaMail] Authentification smtp
    Par ArithmeticException dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 31/10/2016, 02h46
  2. [Javamail] Authentification gmail
    Par sasuke123456 dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 24/01/2011, 18h27
  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. Réponses: 3
    Dernier message: 21/04/2008, 10h24
  5. [JavaMail] problème d'authentification sous Unix
    Par Michalak dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 10/12/2007, 08h44

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