Bonjour,
J'ai fait une application web avec le framework JSF et JPA. Je veux envoyer un email à partir de mon application mais je ne sais pas comment faire.
Merci d'avance pour toutes informations.
Bonjour,
J'ai fait une application web avec le framework JSF et JPA. Je veux envoyer un email à partir de mon application mais je ne sais pas comment faire.
Merci d'avance pour toutes informations.
Tu utilise l'api javamail. Le conteneur j2EE est censé te fournir l'accès à cette api, la configuraiton d'une session javamail se faisant différement suivant le conteneur (c'est une tâche administrative). Ensuite tu injecte la session ainsi créée dans ton EJB:
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 @Stateless public class Mail { @Resource(name = "maSessionMail") private Session session; public void send(String addresses, String topic, String textMessage) { try { Message message = new MimeMessage(session); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(addresses)); message.setSubject(topic); message.setText(textMessage); Transport.send(message); } catch (MessagingException e) { Logger.getLogger(Mail.class.getName()).log(Level.WARNING, "Cannot send mail", e); } } }
J’ai une classe java simple qui permet d'envoyer un email avec succès, et je vous l’utiliser dans ma projet web qui j'ai réalisé avec jee et le Framework jsf, et je ne sais pas comment.
voice ma class
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 package com.intervention.javaemail.servlet; import java.util.Properties; 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; public class testemail { public static void main(String[] args) { final String username = "ahmedkhachani@gmail.com"; final String password = "ma code gmail"; Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.port", "587"); Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { Message message = new MimeMessage(session); message.setFrom(new InternetAddress("ahmedkhachani@gmail.com")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("ahmedkhachani@gmail.com")); message.setSubject("test 2"); message.setText("salut ahmed ci moi"); Transport.send(message); System.out.println("Done"); } catch (MessagingException e) { throw new RuntimeException(e); } } }
Tu prend ce bout de code et tu le met tel quel dans une action de ton controller jsf, ça devrait fonctionner, même si ce n'est pas la manière recommandée.
Partager