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 :

Envoyer un mail


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut Envoyer un mail
    Bonjour

    J'ai créé une application J2EE contenant une partie "contactez-nous" qui permet au visiteur de m'envoyer un mail. Je dois normalement réceptionner ce mail dans la boite de messagerie de mon hébergeur. Le problème est que quand je clique sur "envoyer", je reçois le message d'erreur suivant:

    javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; nested exception is: java.net.ConnectException: Connection refused: connect
    Voici mes codes:

    La class EmailUtility

    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
    /*
     
    package utility;
     
     
    import java.io.UnsupportedEncodingException;
    import java.util.Date;
    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.AddressException;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
     
     
    public class EmailUtility {
        public static void sendEmail( String toAddress,
    			String subject, String message) throws AddressException,
    			MessagingException,
    			UnsupportedEncodingException {
     
    		// sets SMTP server properties
    		Properties properties = new Properties();
     
                    properties.setProperty("mail.from", toAddress);
     
    		Session session = Session.getInstance(properties);
     
    		// creates a new e-mail message
    		MimeMessage msg = new MimeMessage(session);
     
     
    		InternetAddress[] toAddresses = { new InternetAddress("xxxxx@monhebergeur.com") };
    		msg.setRecipients(Message.RecipientType.TO, toAddresses);
    		msg.setSubject(subject);
    		msg.setSentDate(new Date());
    		msg.setText(message,"utf-8", "html");
     
    		// sends the e-mail
    		Transport.send(msg);
     
    	}
    }
    La Servlet:

    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
    93
    94
    95
    96
    97
    98
    99
    100
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package servlets;
     
     
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import beans.Message;
    import forms.ContactForm;
    import utility.EmailUtility;
    import static servlets.Contact.ATT_FORM;
    import static servlets.Contact.ATT_MESSAGE;
    import static servlets.Contact.ATT_MSG;
    import static servlets.Contact.VUE_ECHEC;
    import static servlets.Contact.VUE_SUCCES;
     
     
    public class Contact extends HttpServlet {
     
        public static final String ATT_MSG = "message";
     
        public static final String ATT_FORM   = "form";
        public static final String ATT_MESSAGE   = "msg";
        public static final String VUE_SUCCES   = "/envoireussi.jsp";
        public static final String VUE_ECHEC   = "/contact.jsp";
     
     
     
        public void init() throws ServletException {
     
     
        }
        public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
            /* À la réception d'une requête GET, simple affichage du formulaire */
            this.getServletContext().getRequestDispatcher( VUE_SUCCES ).forward( request, response );
        }
        public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
     
            /* Préparation de l'objet formulaire */
            ContactForm form = new ContactForm(  );
            /* Traitement de la requête et récupération du bean en résultant */
            Message message = form.creerMessage( request );
            /* Ajout du bean et de l'objet métier à l'objet requête */
            request.setAttribute( ATT_MSG, message );
            request.setAttribute( ATT_FORM, form );
     
            String msgRetour = "";
     
                Long id = message.getId();
                String entrep = message.getEntrep();
                String nom = message.getNom();
                String prenom = message.getPrenom();
                String email = message.getEmail();
                String sujet = message.getSujet();
                String msg = message.getMessage();
     
     
            /* Si aucune erreur */
            if ( form.getErreurs().isEmpty() ) {
     
                StringBuilder builder = new StringBuilder("<html><body>");
     
                builder.append("Nom:").append(nom).append("<br><br> Prénom:").append(prenom).append("<br><br>Entreprise: ").append(entrep).append(" <br><br>Message: ").append(msg);
     
                builder.append("</body></html>");
     
                 String emailBody = builder.toString(); // le bouton est moche, suis d'accord :D
     
                try {
    			EmailUtility.sendEmail(  email, sujet, emailBody);
    			msgRetour = "<span id="+"resultat_vert"+">Message envoyé avec succès !</span>";
                            request.setAttribute(ATT_MESSAGE, msgRetour);
                            this.getServletContext().getRequestDispatcher(VUE_SUCCES).forward(request, response);
    		} 
                catch (Exception ex) {
                    System.out.println(ex);
    	msgRetour = "<div class=\"echec2\">Message non envoyé! Adresse Email non valide ou problème de connexion. Veuillez réessayer</div>" ;
    	request.setAttribute(ATT_MESSAGE, msgRetour);
            this.getServletContext().getRequestDispatcher(VUE_ECHEC).forward(request, response);
                }
     
     
                finally {
     
     
    		}
     
     
     
            } else {
                /* Sinon, ré-affichage du formulaire de création avec les erreurs */
                this.getServletContext().getRequestDispatcher( VUE_ECHEC ).forward( request, response );
            }
        }
    }
    Merci

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut
    En fait j'ai mal formulé mon problème.

    Le code que j'ai me permet d'envoyer un mail à un utilisateur à partir du serveur SMTP de mon hébergeur. Pour cela j'ai précisé les infos concernant le nom d’hôte, le port, le nom d'utilisateur et le mot de passe dans le web.xml.

    Mais moi j'aimerais faire en sorte que l'utilisateur puisse m'envoyer le mail sur l'adresse mail de mon hébergeur.

    Merci

  3. #3
    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
    Ben c'est déjà ce que fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    InternetAddress[] toAddresses = { new InternetAddress("xxxxx@monhebergeur.com") };
    		msg.setRecipients(Message.RecipientType.TO, toAddresses);

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut
    Ok ça marche.

    Merci

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

Discussions similaires

  1. envoyer un mail avec mon programme
    Par shrek dans le forum C++Builder
    Réponses: 8
    Dernier message: 06/12/2006, 12h27
  2. [VB6] Comment envoyer un mail HTML par Winsocks ?
    Par hedgehog dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/05/2004, 10h04
  3. [Debutant(e)]envoyer un mail en jsp
    Par SegmentationFault dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 19/01/2004, 18h28
  4. configurer sql pour envoyer des mails
    Par arwen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/07/2003, 15h28

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