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

Servlets/JSP Java Discussion :

Envoi de mail


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Points : 36
    Points
    36
    Par défaut Envoi de mail
    Bonjour ,

    je suis en train de développer un site web J2EE et pour cela je dois envoyer des mails.

    J'ai utilisé la 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
    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
    92
    import java.io.*;
    import java.net.Socket;
    import java.util.Date;
    import java.util.StringTokenizer;
     
    public class MailIo {
     
        public MailIo() {
     
        }
     
        public static boolean sendMail(Socket sock, String localHost, String Destinataire, String from, String subject, String message) throws IOException {
     
            // connection a la socket passe par param
            out = new PrintWriter(sock.getOutputStream());
            in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
            // on recoi la ligne qui nous dit que l'on est connecté
            receive();
            // on envoi la premiere ligne qui indique de qui elle provien
            send("HELO " + localHost);
            // on nous dit qu'elle a bien etait recu
            receive();
            // on envoi l'adresse de l'expediteur
            send("MAIL FROM: <" + from + ">");
            // on nous dit que ca c'est bien passe
            receive();
            // on envoi l'adresse du destinataire
            send("RCPT TO: <" + Destinataire + ">");
            // on recupere la reponse
            receive();
            // on passe au chose serieuse pour commencer l'envoi du corps
            send("DATA");
            // on verifie que le serveur soit pret
            receive();
            // on envoi plusieur balise utile
            send("Subject: " + subject);
            send("Date: " + new Date());
            send("Reply-To:" + from);
            send("To: " + Destinataire);
            // on envoi cahque ligne separement en utilisant \n comme delimitateur
            StringTokenizer tokenizer = new StringTokenizer(message, "\n");
            // la ligne ci dessous se traduit par : tant qu'il y a encore des ligne
            while (tokenizer.hasMoreTokens())
                send(tokenizer.nextToken());
            // pour finir l'envoi d'un mail il faut envoi sur une ligne un seul point
            send(".");
            // on verifie que le mail a etait accepte
            receive();
            // on quitte
            send("QUIT");
            // on nous dit que ca a bien quitter
            receive();
            // on ferme les flux
            in.close();
            out.close();
            sock.close();
     
            return true;
        }
     
        // methode qui recoit les information du servveur
        private static void receive() throws IOException {
     
            String line = in.readLine();
            if (line != null) {
                System.out.println(line);
                System.out.println("\n");
            }
        }
     
        // methode qui envoi des infos au serveur
        private static void send(String s) {
     
            System.out.print(s);
            System.out.print("\r\n");
            System.out.flush();
            out.print(s);
            out.print("\r\n");
            out.flush();
        }
     
        private static BufferedReader    in;
     
        private static PrintWriter        out;
    }
     
    //
    String sub = request.getParameter("objet");
    String msg = request.getParameter("msg");
    String Host = "10.1.1.2";
    Socket sock = new Socket("smtp.menara.ma", 25);
    MailIo.sendMail(sock, host, client@msn.fr , ksrdev@hotmail.com, sub, msg);
    Mais le problème vient sûrement du serveur SMTP, Tomcat indique que le message est envoyé mais lorsque je vérifie ma boîte aucun mail reçu.


    Merci d'avance

  2. #2
    Membre éclairé

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Points : 791
    Points
    791
    Par défaut
    Bonjour,

    N'as tu pas inversé les paramètres destinataire et expéditeur lors de l'utilisation de la méthode sendMail() ?

    Si ce n'est pas le cas, je te propose de mettre la même adresse pour l'expéditeur et le destinataire. En cas de problème de routage, le mail devrait te revenir dans tous les cas et tu pourras voir quel est le problème.

    Une petite remarque : il existe des librairies permettant l'envoi de mail et évitant ainsi de recoder le tout, ça serait peut être plus simple.

    Benoit

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par bboulch Voir le message
    Bonjour,

    N'as tu pas inversé les paramètres destinataire et expéditeur lors de l'utilisation de la méthode sendMail() ?

    Si ce n'est pas le cas, je te propose de mettre la même adresse pour l'expéditeur et le destinataire. En cas de problème de routage, le mail devrait te revenir dans tous les cas et tu pourras voir quel est le problème.

    Une petite remarque : il existe des librairies permettant l'envoi de mail et évitant ainsi de recoder le tout, ça serait peut être plus simple.

    Benoit
    Merci pour la réponse , j'ai déjà mis la même adresse mail pour l'expéditeur et pour le destinataire .

    Je vous ai expliqué le serveur apache indique que le message est et voici le message qui me donne :



    HELO 10.1.1.2
    250 smtp-s5.menara.ma says HELO to 41.143.26.27:12908


    MAIL FROM: <ksrdev@hotmail.com>
    250 MAIL FROM accepted


    RCPT TO: <ksrdev@hotmail.com>
    250 RCPT TO accepted


    DATA
    354 continue. finished with "\r\n.\r\n"


    Subject: slt
    Date: Sat Aug 20 15:59:17 GMT 2011
    Reply-To:ksrdev@hotmail.com
    To: ksrdev@hotmail.com




    Bonjour



    .
    250 OK 8D/40-04693-518CF4E4


    QUIT
    221 smtp-s5.menara.ma closing connection







    Et pour les librairies permettant l'envoi de mail simplement comme vous avez , je vous serai très reconnaissant si vous m'indiquez comment procéder .

    Et merci encore

  4. #4
    Membre éclairé

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Points : 791
    Points
    791
    Par défaut
    Tu peux lancer une recherche "java sendmail" sur Internet, tu devrais trouver ce que tu souhaites.

    Je n'ai que de vagues connaissances de SMTP, mais vu ce que tu montres, le mail semble parti. Il se peut que le problème soit au niveau du fournisseur d'accès Internet.

    Benoit

  5. #5
    Membre du Club Avatar de dark.jabberwock
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 38
    Points : 61
    Points
    61
    Par défaut
    Je pense que javamail API conviendra à tes besoins.
    Tu peux la récupérer par ici : http://www.oracle.com/technetwork/ja...ail/index.html

    Pour la javadoc : http://javamail.kenai.com/nonav/javadocs/index.html

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par dark.jabberwock Voir le message
    Je pense que javamail API conviendra à tes besoins.
    Tu peux la récupérer par ici : http://www.oracle.com/technetwork/ja...ail/index.html

    Pour la javadoc : http://javamail.kenai.com/nonav/javadocs/index.html

    Merci j'ai aussi utilisé cet API mais le souci semble provenir de mon FAI Marco télécom comme vous avez dit , est ce que c'est possible d'envoyer le mail en utilisant le serveur smtp d'un autre FAI (Free par exemple ) autre que celui de mon FAI ?

    Merci encore

Discussions similaires

  1. Envoi de mail au format html
    Par Mephyston dans le forum C++Builder
    Réponses: 2
    Dernier message: 22/01/2004, 12h29
  2. Envoi de mail au format Rich-Text
    Par LineLe dans le forum ASP
    Réponses: 4
    Dernier message: 29/10/2003, 16h27
  3. envoi de mail avec attachement de fichier
    Par GMI3 dans le forum Modules
    Réponses: 2
    Dernier message: 24/09/2003, 11h22
  4. Outlook ne se ferme pas après un envoi de mail
    Par Joke dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/06/2003, 17h32
  5. envoi de mail, protocol SMTP langage C
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 23/05/2003, 11h22

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