Bonjour,
j'essaye de developper une application web avec javaee.je voudrais y ajouter une fonctionnalité d'envoi mail automatique comme aprés une inscription mais j'en ai aucune idée.
si quelqu'un pourrait m'aider,j'en serais trés reconnaissant.
Bonjour,
j'essaye de developper une application web avec javaee.je voudrais y ajouter une fonctionnalité d'envoi mail automatique comme aprés une inscription mais j'en ai aucune idée.
si quelqu'un pourrait m'aider,j'en serais trés reconnaissant.
Salut ,
Je te passe l'exemple de mon projet :
> ça c'est la page jsp ou tu remplis ton formulaire :
> ça c'est la servlet ou tu fais ton traitement , ou tu met ton code d envoi de mail :
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 <div id="p1"> <form method="post" action="oublie"> <pre> Votre adresse email : <input type="text" name="email3" value="" /> <span style="color:red ">*</span> <input type="submit" value="Valider " /> <input type="reset" value="Par défault" /> </pre> </form> </div>
N'oublie pas d'ajouter les .jar du Java mail
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 try { String a = request.getParameter("email3"); c2 = cnx.connect(); st = c2.createStatement(); rs = st.executeQuery("select LOGIN,PASSE from etudiants where EMAIL = '"+a+"' "); if(a.length()==0){ out.println("Vous devez remplir le champ"); } else{ while(rs.next()){ // Code pour envoyer le courrier a l email entrer du formulaire d inscription (email2) final String username = "ton mail"; final String password = "ton_mot de passe"; Properties prop = new Properties(); prop.put("mail.smtp.auth", "true"); prop.put("mail.smtp.starttls.enable", "true"); prop.put("mail.smtp.host", "smtp.gmail.com"); prop.put("mail.smtp.port", "587"); Session session = Session.getInstance(prop,new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(username, password); } }); Message message = new MimeMessage(session); message.setFrom(new InternetAddress("ton mail")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(a)); message.setSubject("Vos coordonnées :"); message.setText("votre login est :"+ rs.getString(1)+"et votre Mot de passe est :"+ rs.getString(2)); Transport.send(message); response.sendRedirect("valide_perdu.jsp"); } } }catch(Exception e){ e.printStackTrace(); } }
Merci de ton aide Zikyoubi.
j'ai ajouté les jars de javamail et j'ai utilisé ton code mais ça me génére toujours cet erreur:avez vous une idée sur ça?
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 javax.mail.AuthenticationFailedException: failed to connect at javax.mail.Service.connect(Service.java:322) at javax.mail.Service.connect(Service.java:172) at javax.mail.Service.connect(Service.java:121) at javax.mail.Transport.send0(Transport.java:190) at javax.mail.Transport.send(Transport.java:120) at com.servlets.SendEmail.doPost(SendEmail.java:74) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
C'est probablement dans la partie de l'Authentification , il faut mettre votre gmail et mot de passe dans le username et password pour que ça connecte ..
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 final String username = "ton mail"; final String password = "ton_mot de passe"; Properties prop = new Properties(); prop.put("mail.smtp.auth", "true"); prop.put("mail.smtp.starttls.enable", "true"); prop.put("mail.smtp.host", "smtp.gmail.com"); prop.put("mail.smtp.port", "587"); Session session = Session.getInstance(prop,new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(username, password); } });
Pourtant j'ai mis mon adresse email (aaa@gmail.com) et mon mot de passe (xxxxxxxx) respectivement sur le username et le password mais l'erreur persiste toujours.
TU les as mis correctement ? pas d'espace ni rien ?
tu peux essayer "465" à la place de 587
Si tu utilise une bdd sql server derrière ton appli, tu peux utiliser la fonction 'sp_send_dbmail'
qui te permet d'envoyer un email automatiquement sur un trigger 'OnInsert' par exemple...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager