Bonjour à tous je suis confronté à une difficulté avec Quartz.
En effet j'aimerais utiliser cette librairie pour envoyer des mails aux participants d'une tâche.
Voici mon code
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
 
package scheduler;
 
import java.io.IOException;
import java.util.List;
import java.util.Properties;
 
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.enterprise.context.SessionScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
 
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
 
import gct.dao.ParticipationDao;
import gct.dao.ParticipationTacheDao;
import gct.entities.ParticipationTache;
import gct.validators.GMailAuthenticator;
 
public class SchedulerJob implements Job{
	@EJB
	private ParticipationTacheDao participationTacheDao;
	public void envoyerEmail() throws AddressException, MessagingException {
		List<ParticipationTache> participantTache=participationTacheDao.listeParticipantTacheNonAvertiParMail();
		for(ParticipationTache participant:participantTache){
			String sujetEmail="Tâches";
			String messageSent="Vous êtes informé que vous participez à la réalisation de la tâche "+participant.getTache().getNom()+" du "+participant.getTache().getDateDbt()+" au "+participant.getTache().getDateFin()+". Description:"
					+ participant.getTache().getDescription();
			String destinataireEnvoyer=participant.getUtilisateur().getEmail();
			System.out.println("Initialisation d'envoi de mail... ");
			try {
			final String username="myemail@gmail.com";
			final String password="mypassword";
			String host = "smtp.gmail.com";
			String from = "myemail@gmail.com";
			String pass = "mypassword";
			Properties props = System.getProperties();
			props.put("mail.smtp.starttls.enable", "true");
			props.put("mail.smtp.host", host);
			props.put("mail.smtp.user", from);
			props.put("mail.smtp.password", pass);
			props.put("mail.smtp.port", "587");
			props.put("mail.smtp.auth", "true");
			props.put("mail.smtp.ssl.enable", "false");
			props.put("mail.debug", "true");
 
			Session session =  Session.getInstance(props, new GMailAuthenticator(username, password));
			MimeMessage message = new MimeMessage(session);
			Address fromAddress = new InternetAddress(from);
			Address toAddress = new InternetAddress(destinataireEnvoyer);
 
			message.setFrom(fromAddress);
			message.setRecipient(Message.RecipientType.TO, toAddress);
 
			message.setSubject(sujetEmail);
			message.setText(messageSent);
			Transport transport = session.getTransport("smtp");
			transport.connect(host, from, pass);
			message.saveChanges();
			Transport.send(message);
			transport.close();
 
      }catch(Exception ex){
 
			System.out.println("<html><head></head><body>");
			System.out.println("ERROR: " + ex);
			System.out.println("</body></html>");
      }	
 
			System.out.println("Email envoyé avec succès au participant "+participant.getUtilisateur().getPrenom());
		}
	}
	@Override
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
		try {
			envoyerEmail();
		} catch (MessagingException e) {
			e.printStackTrace();
		}
 
	}
 
}
Le problème est quand je teste ce code rien ne s'affiche mais par exemple quand j'écris la méthode execute comme ci dessous tout marche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
public void execute(JobExecutionContext arg0) throws JobExecutionException {
		System.out.println("Quartz marche très bien");
	}