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] envoi mail avec authentification


Sujet :

API standards et tierces Java

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut [javaMail] envoi mail avec authentification
    Bonjour,

    J'essaye de faire un envoie de mail, j'ai fait beaucoup de recherche et regarder pas mal de tuto. Mais je parviens pas à trouvé mon erreur

    voila 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
     @Resource(name="mail/equinoxe-software")
        private Session session;
     
        public NewUserMailMDBean() {
        }
     
        public void onMessage(Message msg) {
           if(msg instanceof TextMessage) {
     
     
     
                         Properties props = session.getProperties();
                final String username = (String) props.get("mail.smtp.user");
                    System.out.println("user :"  + username);
                final String password = (String) props.get("mail.smtp.password");
                    System.out.println("password :"  + password);
     
            props.setProperty("mail.transport.protocol", "smtp");
            props.setProperty("mail.host", "smtp.xxxxx.fr");
            props.setProperty("mail.port", "25");
            props.setProperty("mail.smtp.auth", "true");
            Session sessionmail = Session.getDefaultInstance(props, new Authenticator(){
                    @Override
             protected PasswordAuthentication getPasswordAuthentication() {
             return new PasswordAuthentication(username, password);
             }
             });
     
            sessionmail.setDebug(true);
            try {
                javax.mail.Message mesg = new MimeMessage(sessionmail);
                mesg.setFrom(new InternetAddress(username));
                System.out.println("*****Adresse TO ****");
                mesg.addRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress("xxxxx@xxxxx.fr"));
                mesg.setSubject("mailObjet");
                mesg.setText("mailText");
     
                Transport transport = sessionmail.getTransport("smtp");
                System.out.println("transport: "+transport.getURLName());
                transport.connect("smtp.xxxxx.fr",username, password);
                transport.sendMessage(mesg, mesg.getAllRecipients());
                transport.close();
                System.out.println("*****mail is sent****");
                System.out.println(" sortie fonction SenderMail----->");
            } catch (MessagingException ex) {
                System.out.println("*****exception****");
            while ((ex = (MessagingException)ex.getNextException()) != null) {
            ex.printStackTrace();
            }
            }
    }
    quand je lance ma fonction j'ai cette erreur:

    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
    60
    61
    62
    63
    64
    65
    66
    user :logexploit@equinoxe-software.fr
    password :equinoxe
    DEBUG: setDebug: JavaMail version 1.4.1
    *****Adresse TO ****
    DEBUG: mail.smtp.class property exists and points to com.sun.mail.smtp.SMTPTransport
    transport: smtp:
    DEBUG SMTP: useEhlo true, useAuth true
    DEBUG SMTP: trying to connect to host "smtp.xxxxx.fr", port 25, isSSL false
    DEBUG SMTP: exception reading response: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    *****exception****
    MQRA:OMR:run:Caught Exception from onMessage():Redelivering:message-driven bean method public abstract void javax.jms.MessageListener.onMessage(javax.jms.Message) system exception
    MQRA:OMR:run:Exhausted redeliveryAttempts-msg=com.sun.messaging.jms.ra.DirectTextPacket@73534
    MQRA:OMR:run:Exhausted redeliveryAttempts-spec=ActvationSpec configuration=
            DestinationType                     =javax.jms.Queue
            Destination                         =PhysicalQueue
            MessageSelector                     =null
            AcknowledgeMode                     =Auto-acknowledge
            SubscriptionDurability              =NonDurable
            ClientId                            =null
            SubscriptionName                    =null
            EndpointPoolMaxSize                 =32
            EndpointPoolSteadySize              =0
            EndpointPoolResizeCount             =8
            EndpointPoolResizeTimeout           =600
            EndpointExceptionRedeliveryAttempts =1
            EndpointExceptionRedeliveryInterval =500
            SendUndeliverableMsgsToDMQ          =true
            GroupName                           =null
            RAUID                               =null
            InClusteredContainer                =false
            MdbName                             =null
            UserName                            =null
            EnableDirect                        =true
            AddressList (in effect)             =localhost:7676
    MQRA:OMR:run:Message returned & marked for routing to the DMQ
    MQRA:OMR:run:omrId=0:Acked Undeliverable-Msg=com.sun.messaging.jms.ra.DirectTextPacket@73534
    MDB00037 : [TrainingApp2:NewUserMailMDBean]: Exception d'appel du bean message-driven : [javax.ejb.EJBException]
    javax.ejb.EJBException
    javax.ejb.EJBException
            at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:3894)
            at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3794)
            at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3596)
            at com.sun.ejb.containers.MessageBeanContainer.afterMessageDeliveryInternal(MessageBeanContainer.java:1226)
            at com.sun.ejb.containers.MessageBeanContainer.afterMessageDelivery(MessageBeanContainer.java:1197)
            at com.sun.ejb.containers.MessageBeanListenerImpl.afterMessageDelivery(MessageBeanListenerImpl.java:79)
            at com.sun.enterprise.connectors.inflow.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:139)
            at $Proxy53.afterDelivery(Unknown Source)
            at com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:324)
            at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:76)
            at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
    Caused by: java.lang.ClassCastException: javax.net.ssl.SSLException
            at com.otherway.training.ejb3.mdb.NewUserMailMDBean.onMessage(NewUserMailMDBean.java:79)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:585)
            at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011)
            at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175)
            at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2920)
            at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4011)
            at com.sun.ejb.containers.MessageBeanContainer.deliverMessage(MessageBeanContainer.java:1111)
            at com.sun.ejb.containers.MessageBeanListenerImpl.deliverMessage(MessageBeanListenerImpl.java:74)
            at com.sun.enterprise.connectors.inflow.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:179)
            at $Proxy53.onMessage(Unknown Source)
            at com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:258)
            ... 2 more
    Le problème vient surement de l'authentification, mais je trouve pas

    Une idée?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Ton erreur viens de là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ((ex = (MessagingException)ex.getNextException()) != null)
    et elle cache l'erreur réelle. Rine ne te garanti que ex.getNextException est un MessagingException. Dans le cas présent, c'est SSLException.

    remplace ton catch par ceci:
    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
     
    } catch (MessagingException ex) {
      System.out.println("*****exception****");
      Exception exception;
      ex.printStackTrace();
      while (true) {
            exception = ex.getNextException();
            if (exception ==null)
                break;
            exception.printStackTrace();  
            if (exception instanceof MessagingException)
                ex = (MessagingException) exception;
            else
                break;
      }

  3. #3
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    merci pour ta réponse hyper rapide!

    j'ai testé en changeant le catch mais j'ai toujours une erreur.

    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
    user :xxxxx@xxxxx.fr
    password :xxxxx
    MQRA:OMR:run:Caught Exception from onMessage():Redelivering:message-driven bean method public abstract void javax.jms.MessageListener.onMessage(javax.jms.Message) system exception
    MQRA:OMR:run:Exhausted redeliveryAttempts-msg=com.sun.messaging.jms.ra.DirectTextPacket@c03bfa
    MQRA:OMR:run:Exhausted redeliveryAttempts-spec=ActvationSpec configuration=
            DestinationType                     =javax.jms.Queue
            Destination                         =PhysicalQueue
            MessageSelector                     =null
            AcknowledgeMode                     =Auto-acknowledge
            SubscriptionDurability              =NonDurable
            ClientId                            =null
            SubscriptionName                    =null
            EndpointPoolMaxSize                 =32
            EndpointPoolSteadySize              =0
            EndpointPoolResizeCount             =8
            EndpointPoolResizeTimeout           =600
            EndpointExceptionRedeliveryAttempts =1
            EndpointExceptionRedeliveryInterval =500
            SendUndeliverableMsgsToDMQ          =true
            GroupName                           =null
            RAUID                               =null
            InClusteredContainer                =false
            MdbName                             =null
            UserName                            =null
            EnableDirect                        =true
            AddressList (in effect)             =localhost:7676
    MQRA:OMR:run:Message returned & marked for routing to the DMQ
    MQRA:OMR:run:omrId=0:Acked Undeliverable-Msg=com.sun.messaging.jms.ra.DirectTextPacket@c03bfa
    MDB00037 : [TrainingApp2:NewUserMailMDBean]: Exception d'appel du bean message-driven : [javax.ejb.EJBException]
    javax.ejb.EJBException
    javax.ejb.EJBException
            at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:3894)
            at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3794)
            at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3596)
            at com.sun.ejb.containers.MessageBeanContainer.afterMessageDeliveryInternal(MessageBeanContainer.java:1226)
            at com.sun.ejb.containers.MessageBeanContainer.afterMessageDelivery(MessageBeanContainer.java:1197)
            at com.sun.ejb.containers.MessageBeanListenerImpl.afterMessageDelivery(MessageBeanListenerImpl.java:79)
            at com.sun.enterprise.connectors.inflow.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:139)
            at $Proxy60.afterDelivery(Unknown Source)
            at com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:324)
            at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:76)
            at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
    Caused by: java.lang.SecurityException: Access to default session denied
            at javax.mail.Session.getDefaultInstance(Session.java:321)
            at com.otherway.training.ejb3.mdb.NewUserMailMDBean.onMessage(NewUserMailMDBean.java:54)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:585)
            at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011)
            at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175)
            at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2920)
            at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4011)
            at com.sun.ejb.containers.MessageBeanContainer.deliverMessage(MessageBeanContainer.java:1111)
            at com.sun.ejb.containers.MessageBeanListenerImpl.deliverMessage(MessageBeanListenerImpl.java:74)
            at com.sun.enterprise.connectors.inflow.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:179)
            at $Proxy60.onMessage(Unknown Source)
            at com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:258)
            ... 2 more
    Mais je pense que tu as résolue une erreur.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    pourquoi tu utilise Session.getDefaultInstance() alors que, visiblement vu ton code, t'es supposé utiliser ça @Resource(name="mail/equinoxe-software")?

  5. #5
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    Oui je dois m'emmêler un peu les pinceaux.
    Que doit-je utiliser alors?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    manifestement, tu dois utiliser le champ privé session, au vu de la configuration de ton EJB.

  7. #7
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    j'ai essayé ceci:

    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
         System.out.println(msg);
                         Properties props = session.getProperties();
                final String username = (String) props.get("mail.smtp.user");
                    System.out.println("user :"  + username);
                final String password = (String) props.get("mail.smtp.password");
                    System.out.println("password :"  + password);
     
             props.setProperty("mail.transport.protocol", "smtp");
             props.setProperty("mail.host", "smtp.xxxxx.fr");
             props.setProperty("mail.port", "25");
             props.setProperty("mail.smtp.auth", "true");
             session.setDebug(true);
             try {
                javax.mail.Message mesg = new MimeMessage(session);
                mesg.setFrom(new InternetAddress(username));
                System.out.println("*****Adresse TO ****");
                mesg.addRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress("xxxxx@xxxxx.fr"));
                mesg.setSubject("mailObjet");
                mesg.setText("mailText");
     
                Transport transport = session.getTransport("smtp");
                System.out.println("transport: "+transport.getURLName());
                transport.connect("smtp.xxxxx.fr",username, password);
                transport.sendMessage(mesg, mesg.getAllRecipients());
                transport.close();
                System.out.println("*****mail is sent****");
                System.out.println(" sortie fonction SenderMail----->");
             } catch (MessagingException ex) {
               System.out.println("*****exception****");
      Exception exception;
      ex.printStackTrace();
      while (true) {
            exception = ex.getNextException();
            if (exception ==null)
                break;
            exception.printStackTrace();
            if (exception instanceof MessagingException)
                ex = (MessagingException) exception;
            else
                break;
                }
            }
          }
    Et toujours une erreur:

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    user :xxxxx@xxxxxfr
    password :xxxxx
    *****Adresse TO ****
    transport: smtp:
    *****exception****
    javax.mail.MessagingException: Exception reading response;
      nested exception is:
            javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
            at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1611)
            at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1369)
            at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
            at javax.mail.Service.connect(Service.java:288)
            at javax.mail.Service.connect(Service.java:169)
            at com.otherway.training.ejb3.mdb.NewUserMailMDBean.onMessage(NewUserMailMDBean.java:73)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:585)
            at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011)
            at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175)
            at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2920)
            at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4011)
            at com.sun.ejb.containers.MessageBeanContainer.deliverMessage(MessageBeanContainer.java:1111)
            at com.sun.ejb.containers.MessageBeanListenerImpl.deliverMessage(MessageBeanListenerImpl.java:74)
            at com.sun.enterprise.connectors.inflow.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:179)
            at $Proxy57.onMessage(Unknown Source)
            at com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:258)
            at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:76)
            at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
    Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
            at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(InputRecord.java:501)
            at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:343)
            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:720)
            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1025)
            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:675)
            at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
            at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:110)
            at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
            at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
            at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:88)
            at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1589)
            ... 20 more
    javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
            at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(InputRecord.java:501)
            at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:343)
            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:720)
            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1025)
            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:675)
            at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
            at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:110)
            at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
            at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
            at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:88)
            at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1589)
            at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1369)
            at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
            at javax.mail.Service.connect(Service.java:288)
            at javax.mail.Service.connect(Service.java:169)
            at com.otherway.training.ejb3.mdb.NewUserMailMDBean.onMessage(NewUserMailMDBean.java:73)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:585)
            at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011)
            at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175)
            at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2920)
            at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4011)
            at com.sun.ejb.containers.MessageBeanContainer.deliverMessage(MessageBeanContainer.java:1111)
            at com.sun.ejb.containers.MessageBeanListenerImpl.deliverMessage(MessageBeanListenerImpl.java:74)
            at com.sun.enterprise.connectors.inflow.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:179)
            at $Proxy57.onMessage(Unknown Source)
            at com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:258)
            at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:76)
            at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Unrecognized SSL message, plaintext connection?
    manifestement tu te connecter sur le port ssl de ton serveur mail, mais tu n'a pas configuré la session javamail pour qu'elle utilise ssl, ou c'est l'inverse (plus probable vu que tu as un SSLException). Du coup ton serveur et ton client parlent pas la même langue.

  9. #9
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    oui c'est bizarre car pourtant j'utilise le port 25 qui est le port smpt. Je vois pas pourquoi il essaye de se connecter au port ssl.

    Ou alors j'ai mal configuré JavaMail comme tu dit. Mais comment je dois le configurer alors?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    il faut vérifier la configuration de ta ressource
    @Resource(name="mail/equinoxe-software")


    (note: les props.setProperty dans ton code ne servent a rien, c'est le conteneur qui a configuré ta session. Le session.getProperty ne te renvoie qu'un copie de la configuration)

  11. #11
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    voila la configuration de ma ressource:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <mail-resource debug="false" enabled="true" from="xxxxxx@xxxxx.fr" host="smtp.xxxxxx.fr" jndi-name="mail/equinoxe-software" object-type="user" store-protocol="imap" store-protocol-class="com.sun.mail.imap.IMAPStore" transport-protocol="smtp" transport-protocol-class="com.sun.mail.smtp.SMTPTransport" user="logexploit">
        <description>Ceci est mon compte Mail</description>
        <property name="mail-smtp-host" value="smtp.xxxxx.fr"/>
        <property name="mail-smtp-password" value="xxxxx"/>
        <property name="mail-smtp-socketFactory-class" value="javax.net.ssl.SSLSocketFactory"/>
        <property name="mail-smtp-auth" value="true"/>
        <property name="mail-smtp-socketFactory-port" value="25"/>
        <property name="mail-smtp-port" value="25"/>
        <property name="mail-smtp-user" value="xxxxx@xxxxx.fr"/>
        <property name="mail-smtp-starttls-enable" value="true"/>
        <property name="mail-smtp-socketFactory-fallback" value="false"/>
      </mail-resource>
    J'ai enlevé cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        <property name="mail-smtp-socketFactory-class" value="javax.net.ssl.SSLSocketFactory"/>
    modifié ma classe:
    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
          System.out.println(msg);
                         Properties props = session.getProperties();
                final String username = (String) props.get("mail.smtp.user");
                    System.out.println("user :"  + username);
                final String password = (String) props.get("mail.smtp.password");
                    System.out.println("password :"  + password);
     
             session.setDebug(true);
             try {
                javax.mail.Message mesg = new MimeMessage(session);
              //  mesg.setFrom(new InternetAddress(username));
                System.out.println("*****Adresse TO ****");
                mesg.addRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress("xxxxx@xxxxx.fr"));
                mesg.setSubject("mailObjet");
                mesg.setText("mailText");
                Transport.send(mesg);
     
     
                Transport transport = session.getTransport("smtp");
                System.out.println("transport: "+transport.getURLName());
                transport.connect("smtp.xxxxx.fr",username, password);
                transport.sendMessage(mesg, mesg.getAllRecipients());
                transport.close();
                System.out.println("*****mail is sent****");
                System.out.println(" sortie fonction SenderMail----->");
             } catch (MessagingException ex) {
               System.out.println("*****exception****");
      Exception exception;
      ex.printStackTrace();
      while (true) {
            exception = ex.getNextException();
            if (exception ==null)
                break;
            exception.printStackTrace();
            if (exception instanceof MessagingException)
                ex = (MessagingException) exception;
            else
                break;
                }
            }
    Mais toujours une erreur
    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
    user :xxxxx@xxxxx.fr
    password :xxxxx
    *****Adresse TO ****
    *****exception****
    javax.mail.AuthenticationFailedException
            at javax.mail.Service.connect(Service.java:319)
            at javax.mail.Service.connect(Service.java:169)
            at javax.mail.Service.connect(Service.java:118)
            at javax.mail.Transport.send0(Transport.java:188)
            at javax.mail.Transport.send(Transport.java:118)
            at com.otherway.training.ejb3.mdb.NewUserMailMDBean.onMessage(NewUserMailMDBean.java:70)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:585)
            at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011)
            at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175)
            at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2920)
            at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4011)
            at com.sun.ejb.containers.MessageBeanContainer.deliverMessage(MessageBeanContainer.java:1111)
            at com.sun.ejb.containers.MessageBeanListenerImpl.deliverMessage(MessageBeanListenerImpl.java:74)
            at com.sun.enterprise.connectors.inflow.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:179)
            at $Proxy72.onMessage(Unknown Source)
            at com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:258)
            at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:76)
            at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
    Mais il essaye plus de se connecter en ssl

  12. #12
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    En faite c'est bon j'ai enlevé cette ligne que j'avais oublié d'enlevé:
    Merci pour ton aide!!

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par totofe Voir le message
    Mais toujours une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    user :xxxxx@xxxxx.fr
    password :xxxxx
    *****Adresse TO ****
    *****exception****
    javax.mail.AuthenticationFailedException
    Si tu lit le message d'erreur, tu dois normalement par toi même etre capable d'en conclure que l'authentification a échoué, donc, a priori, que les user / pass sont incorrect.

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

Discussions similaires

  1. Envoi simple de mail avec authentification
    Par fear-69 dans le forum Java ME
    Réponses: 1
    Dernier message: 02/02/2010, 16h14
  2. [javamail] envoi mail avec message en pièce jointe
    Par k4eve dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 16/11/2007, 12h17
  3. [Javamail] Envoi mail avec plusieurs smtp
    Par igloof dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 02/11/2006, 13h08
  4. envoi de mail avec authentification
    Par jfb53 dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/08/2006, 13h23
  5. [TIdSMTP] Envoi d'un mail avec authentification ?
    Par BACUS dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/06/2004, 17h18

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