/* * Copyright 2011 Blazebit */ package com.blazebit.quartz.job.mail; import com.blazebit.mail.Mail; import com.blazebit.mail.util.MailUtils; import com.blazebit.quartz.job.AbstractJob; import com.blazebit.quartz.job.JobParameter; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.mail.MessagingException; import org.quartz.JobDataMap; import org.quartz.JobExecutionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author Christian Beikov * @since 0.1.2 */ public abstract class AbstractSendMailJob extends AbstractJob { private static final long serialVersionUID = 1L; private static final Logger log = LoggerFactory .getLogger(AbstractSendMailJob.class); protected Mail createMail(JobDataMap dataMap, String[] to, String subject, String text, String html) { return MailUtils.createMessage(getRequiredParam(dataMap, "from"), to, subject, text, html); } protected Mail createMail(JobDataMap dataMap, String[] to, String subject, String text, String html, File[] files) throws IOException { return MailUtils.createMessage(getRequiredParam(dataMap, "from"), to, subject, text, html, files); } protected void sendMail(JobDataMap dataMap, Mail m) throws JobExecutionException { try { MailUtils.sendMessage(getRequiredParam(dataMap, "host"), Integer.valueOf(getRequiredParam(dataMap, "port")), getRequiredParam(dataMap, "user"), getRequiredParam(dataMap, "password"), dataMap.getBoolean("trustAllCertificates"), dataMap.getBoolean("secure"), m); } catch (MessagingException ex) { log.error(null, ex); throw new JobExecutionException(ex, false); } } @Override public List<JobParameter> getParameters() { List<JobParameter> l = new ArrayList<JobParameter>( super.getParameters()); l.add(new JobParameter("host", true, String.class)); l.add(new JobParameter("port", true, Integer.class)); l.add(new JobParameter("user", true, String.class)); l.add(new JobParameter("password", true, String.class)); l.add(new JobParameter("from", true, String.class)); // optional l.add(new JobParameter("trustAllCertificates", false, Boolean.class)); l.add(new JobParameter("secure", false, Boolean.class)); return l; } }