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

Développement Web en Java Discussion :

Envoi de mail qui echoue sans aucune exception


Sujet :

Développement Web en Java

  1. #1
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut Envoi de mail qui echoue sans aucune exception
    Bonjour,
    J'essaie d'envoyer un mail via un script en utilisant javax.mail mais je ne reçois jamais le mail.
    Aucune exception n'est levée, l'authentification à l'air de bien se passer.
    En production, mes autres sites sur le même serveur utilisant la même classe envoient bien les mails eux.
    Je vous donne mon code :

    methode dans mon ManagedBean :
    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
        public void actionValidate() {
            try {
                validate();
                sendValidateMail();
                createCookie("cookie_status", "1");
                setHTTP();
                facesContext.getExternalContext().redirect(response.encodeRedirectURL("/"));
            } catch (SQLException ex) {
                Logger.getLogger(Validate.class.getName()).log(Level.SEVERE, null, ex);
                sqlException(ex);
            } catch (NamingException ex) {
                Logger.getLogger(Validate.class.getName()).log(Level.SEVERE, null, ex);
                namingException(ex);
            } catch (MyException ex) {
                Logger.getLogger(Validate.class.getName()).log(Level.SEVERE, null, ex);
                myException(ex);
            } catch (MessagingException ex) {
                Logger.getLogger(Validate.class.getName()).log(Level.SEVERE, null, ex);
                messagingException(ex);
            } catch (UnsupportedEncodingException ex) {
                Logger.getLogger(Validate.class.getName()).log(Level.SEVERE, null, ex);
                unsupportedEncodingException(ex);
            } catch (IOException ex) {
                Logger.getLogger(Validate.class.getName()).log(Level.SEVERE, null, ex);
                ioException(ex);
            } finally {
                closeConnection();
            }
            //
            if (test == 2) {
                messageError("Erreur : ", errorMsg);
            }
        }
    La méthode qui envoie le mail dans la classe parente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        public void sendValidateMail() throws MessagingException, UnsupportedEncodingException {
            SendMail sendMail = new SendMail();
            ValidateMail mail = new ValidateMail(url, categories.categories);
            sendMail.setDestinat(user.email);
            sendMail.setSubject(Datas.SITENAME + " : Votre site est accepté.");
            sendMail.setContent(mail.getContent());
            sendMail.sendMessage();
        }
    Ma classe SendMail :
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    package classes;
     
    import java.io.Serializable;
    import java.io.UnsupportedEncodingException;
    import java.util.Properties;
    import javax.mail.Authenticator;
    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;
     
    /**
     *
     * @author pj
     */
    public class SendMail extends SuperClass implements Serializable {
     
        Session sess = null;
        private String destinat = "";
        private String subject = "";
        private String content = "";
     
        public SendMail() {
            super();
            Properties properties = new Properties();
            properties.put("mail.smtp.auth", "true");
            properties.put("mail.smtp.host", Datas.SMTPHOST);
            properties.put("mail.smtp.port", Datas.SMTPPORT);
            //properties.put("mail.smtp.starttls.enable", "true");
            properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            //properties.put("mail.debug", "true");
     
            //sess = Session.getDefaultInstance(properties, null);
            sess = Session.getInstance(properties, new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(Datas.NOREPLY, Datas.PWDNOREPLY);
                }
            });
        }
     
        public void sendMessage() throws MessagingException, UnsupportedEncodingException {
            Transport transport = sess.getTransport();
            Message mess = new MimeMessage(sess);
            mess.setFrom(new InternetAddress(Datas.NOREPLY, "Télétravail.coM"));
            mess.setRecipients(Message.RecipientType.TO, InternetAddress.parse(destinat));
            mess.setSubject(subject);
            mess.setContent(content, "text/html; charset=UTF-8");
            mess.setHeader("Content-Type", "text/html; charset=\"UTF-8\"");
            transport.connect();
            transport.sendMessage(mess, mess.getRecipients(Message.RecipientType.TO));
            transport.close();
        }
     
        public void sendMessage(String FromEmail, String FromName) throws MessagingException, UnsupportedEncodingException {
            Transport transport = sess.getTransport();
            Message mess = new MimeMessage(sess);
            mess.setFrom(new InternetAddress(FromEmail, FromName));
            mess.setRecipients(Message.RecipientType.TO, InternetAddress.parse(destinat));
            mess.setSubject(subject);
            mess.setContent(content, "text/html; charset=UTF-8");
            mess.setHeader("Content-Type", "text/html; charset=\"UTF-8\"");
            transport.connect();
            transport.sendMessage(mess, mess.getRecipients(Message.RecipientType.TO));
            transport.close();
        }
     
        /**
         * @param destinat the destinat to set
         */
        public void setDestinat(String destinat) {
            this.destinat = destinat;
        }
     
        /**
         * @param subject the subject to set
         */
        public void setSubject(String subject) {
            this.subject = subject;
        }
     
        /**
         * @param content the content to set
         */
        public void setContent(String content) {
            this.content = content;
        }
    }
    dans mon managedBean le script s'execute après la tentative d'envoi du mail (je fais une redirection après et elle a bien lieu), j'en conclue qu'il n'y a aucun problème d'authenficication ou de port...
    Peut être que ça vous parle...
    Merci.

  2. #2
    Expert éminent
    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 : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si t'as aucune erreur et que tu ne reçois pas le mail, j'en conclue que le destinataire n'est pas celui que tu pense être. Et l'email arrive ailleurs.

  3. #3
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    si t'as aucune erreur et que tu ne reçois pas le mail, j'en conclue que le destinataire n'est pas celui que tu pense être. Et l'email arrive ailleurs.
    Merci, Pourtant en mode debug c'est bien mon adresse perso qui apparaît.

  4. #4
    Expert éminent
    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 : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu peux activer ton mail.debug et nous donner les traces de debug?
    Tu n'a aucune trace du mail dans les logs de ton serveur SMTP?

  5. #5
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut
    Oui, voila :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    DEBUG: JavaMail version 1.5.4
    DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
    DEBUG: Tables of loaded providers
    DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle]}
    DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]}
    DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
    DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
    DEBUG SMTP: need username and password for authentication
    DEBUG SMTP: useEhlo true, useAuth true
    DEBUG SMTP: trying to connect to host "ns0.ovh.net", port 587, isSSL false
    220 ns0.ovh.net You connect to mail411 ESMTP
    DEBUG SMTP: connected to host "ns0.ovh.net", port: 587

  6. #6
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut
    Bonjour, bon je traque mon bug et jusqu'à présent j'ai remarqué que les mail était envoyé suivant leur contenu, certain passe, d'autres non, je ne comprends pas trop, le compte mail que j'utilise provient d'un mxplan OVH que j'ai configuré sur mon serveur, je ne pense pas qu'ovh mette des filtres ???

  7. #7
    Expert éminent
    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 : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Et le serveur de destination il n'aurait pas des filtres anti spam?

  8. #8
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Et le serveur de destination il n'aurait pas des filtres anti spam?
    oui je pense que c'est ça je testais sur mon adresse perso (yahoo), avec une autre adresse ça passe.

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

Discussions similaires

  1. Fonction envoi de mail qui n'envoi rien
    Par cuisto44000 dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2013, 18h18
  2. envoi de mail qui ne marche plus
    Par laurentSc dans le forum Langage
    Réponses: 1
    Dernier message: 07/08/2011, 10h39
  3. Envois de mail avec ou sans smtp ?
    Par AliHome dans le forum Windows Forms
    Réponses: 17
    Dernier message: 04/04/2011, 09h55
  4. Access 97 : Envoi de mail par SMTP sans Outlook
    Par mr_foxy dans le forum Access
    Réponses: 2
    Dernier message: 16/03/2006, 14h45

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