@Override public String toString() { return "'" + getSubject() + "' to: " + getTo(); }
protected MailInfo createMailInfo() { return new MailInfo(); }
protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(mailInfo.getUsername(), mailInfo.getPassword()); } };
protected MailInfo populateMailInfo(JobDataMap data, MailInfo mailInfo) { mailInfo.setSmtpHost(getRequiredParm(data, PROP_SMTP_HOST, "PROP_SMTP_HOST")); mailInfo.setTo(getRequiredParm(data, PROP_RECIPIENT, "PROP_RECIPIENT")); mailInfo.setFrom(getRequiredParm(data, PROP_SENDER, "PROP_SENDER")); mailInfo.setSubject(getRequiredParm(data, PROP_SUBJECT, "PROP_SUBJECT")); mailInfo.setMessage(getRequiredParm(data, PROP_MESSAGE, "PROP_MESSAGE")); mailInfo.setReplyTo(getOptionalParm(data, PROP_REPLY_TO)); mailInfo.setCc(getOptionalParm(data, PROP_CC_RECIPIENT)); mailInfo.setContentType(getOptionalParm(data, PROP_CONTENT_TYPE)); mailInfo.setUsername(getOptionalParm(data, PROP_USERNAME)); mailInfo.setPassword(getOptionalParm(data, PROP_PASSWORD)); if (mailInfo.getSmtpProperties() == null) { mailInfo.setSmtpProperties(smtpProperties); } else { mailInfo.getSmtpProperties().putAll(smtpProperties);
protected MailInfo populateMailInfo(JobDataMap data, MailInfo mailInfo) { // Required parameters mailInfo.setSmtpHost(getRequiredParm(data, PROP_SMTP_HOST, "PROP_SMTP_HOST")); mailInfo.setTo(getRequiredParm(data, PROP_RECIPIENT, "PROP_RECIPIENT")); mailInfo.setFrom(getRequiredParm(data, PROP_SENDER, "PROP_SENDER")); mailInfo.setSubject(getRequiredParm(data, PROP_SUBJECT, "PROP_SUBJECT")); mailInfo.setMessage(getRequiredParm(data, PROP_MESSAGE, "PROP_MESSAGE")); // Optional parameters mailInfo.setReplyTo(getOptionalParm(data, PROP_REPLY_TO)); mailInfo.setCc(getOptionalParm(data, PROP_CC_RECIPIENT)); mailInfo.setContentType(getOptionalParm(data, PROP_CONTENT_TYPE)); return mailInfo; }
protected MimeMessage prepareMimeMessage(MailInfo mailInfo) throws MessagingException { Session session = getMailSession(mailInfo); MimeMessage mimeMessage = new MimeMessage(session); Address[] toAddresses = InternetAddress.parse(mailInfo.getTo()); mimeMessage.setRecipients(Message.RecipientType.TO, toAddresses); if (mailInfo.getCc() != null) { Address[] ccAddresses = InternetAddress.parse(mailInfo.getCc()); mimeMessage.setRecipients(Message.RecipientType.CC, ccAddresses); } mimeMessage.setFrom(new InternetAddress(mailInfo.getFrom())); if (mailInfo.getReplyTo() != null) { mimeMessage.setReplyTo(new InternetAddress[]{new InternetAddress(mailInfo.getReplyTo())}); } mimeMessage.setSubject(mailInfo.getSubject()); mimeMessage.setSentDate(new Date()); setMimeMessageContent(mimeMessage, mailInfo); return mimeMessage; }
/** * @see org.quartz.Job#execute(org.quartz.JobExecutionContext) */ public void execute(JobExecutionContext context) throws JobExecutionException { JobDataMap data = context.getMergedJobDataMap(); MailInfo mailInfo = populateMailInfo(data, createMailInfo()); getLog().info("Sending message " + mailInfo); try { MimeMessage mimeMessage = prepareMimeMessage(mailInfo); Transport.send(mimeMessage); } catch (MessagingException e) { throw new JobExecutionException("Unable to send mail: " + mailInfo, e, false); } }
protected void setMimeMessageContent(MimeMessage mimeMessage, MailInfo mailInfo) throws MessagingException { if (mailInfo.getContentType() == null) { mimeMessage.setText(mailInfo.getMessage()); } else { mimeMessage.setContent(mailInfo.getMessage(), mailInfo.getContentType()); } }
protected Session getMailSession(final MailInfo mailInfo) throws MessagingException { Properties properties = new Properties(); properties.put("mail.smtp.host", mailInfo.getSmtpHost()); // pass along extra smtp settings from users Properties extraSettings = mailInfo.getSmtpProperties(); if (extraSettings != null) { properties.putAll(extraSettings); } Authenticator authenticator = null; if (mailInfo.getUsername() != null && mailInfo.getPassword() != null) { log.info("using username '{}' and password 'xxx'", mailInfo.getUsername()); authenticator = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(mailInfo.getUsername(), mailInfo.getPassword()); } }; } log.debug("Sending mail with properties: {}", properties); return Session.getDefaultInstance(properties, authenticator); }
protected String getRequiredParm(JobDataMap data, String property, String constantName) { String value = getOptionalParm(data, property); if (value == null) { throw new IllegalArgumentException(constantName + " not specified."); } return value; }
protected Session getMailSession(MailInfo mailInfo) throws MessagingException { Properties properties = new Properties(); properties.put("mail.smtp.host", mailInfo.getSmtpHost()); return Session.getDefaultInstance(properties, null); }
protected MailInfo populateMailInfo(JobDataMap data, MailInfo mailInfo) { // Required parameters mailInfo.setSmtpHost(getRequiredParm(data, PROP_SMTP_HOST, "PROP_SMTP_HOST")); mailInfo.setTo(getRequiredParm(data, PROP_RECIPIENT, "PROP_RECIPIENT")); mailInfo.setFrom(getRequiredParm(data, PROP_SENDER, "PROP_SENDER")); mailInfo.setSubject(getRequiredParm(data, PROP_SUBJECT, "PROP_SUBJECT")); mailInfo.setMessage(getRequiredParm(data, PROP_MESSAGE, "PROP_MESSAGE")); // Optional parameters mailInfo.setReplyTo(getOptionalParm(data, PROP_REPLY_TO)); mailInfo.setCc(getOptionalParm(data, PROP_CC_RECIPIENT)); mailInfo.setContentType(getOptionalParm(data, PROP_CONTENT_TYPE)); return mailInfo; }
public String toString() { return "'" + getSubject() + "' to: " + getTo(); }
protected void setMimeMessageContent(MimeMessage mimeMessage, MailInfo mailInfo) throws MessagingException { if (mailInfo.getContentType() == null) { mimeMessage.setText(mailInfo.getMessage()); } else { mimeMessage.setContent(mailInfo.getMessage(), mailInfo.getContentType()); } }
protected MailInfo createMailInfo() { return new MailInfo(); }
protected String getRequiredParm(JobDataMap data, String property, String constantName) { String value = getOptionalParm(data, property); if (value == null) { throw new IllegalArgumentException(constantName + " not specified."); } return value; }
public String toString() { return "'" + getSubject() + "' to: " + getTo(); }
protected void setMimeMessageContent(MimeMessage mimeMessage, MailInfo mailInfo) throws MessagingException { if (mailInfo.getContentType() == null) { mimeMessage.setText(mailInfo.getMessage()); } else { mimeMessage.setContent(mailInfo.getMessage(), mailInfo.getContentType()); } }
protected MailInfo createMailInfo() { return new MailInfo(); }
protected String getRequiredParm(JobDataMap data, String property, String constantName) { String value = getOptionalParm(data, property); if (value == null) { throw new IllegalArgumentException(constantName + " not specified."); } return value; }