Envoyer un mail dans executor de Quartz
	
	
		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:
	
| 12
 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:
	
| 12
 3
 4
 
 |  
public void execute(JobExecutionContext arg0) throws JobExecutionException {
		System.out.println("Quartz marche très bien");
	} |