public void send(String controlReportFile, String errorReportFile, String subject, StringBuffer message) {
try {
MimeMessage msg = new MimeMessage(session);
msg.setFrom(fromAddress);
msg.addRecipients(Message.RecipientType.TO, notificationRecipients);
msg.setSubject(subject);
// Create the message part
BodyPart messageBodyPart = new MimeBodyPart();
Multipart multipart = new MimeMultipart();
// Part 1 is fill the message
File controlReport = new File(controlReportFile);
File errorReport = new File(errorReportFile);
if (errorReport.isFile()) {
message.append("\nAlso please find the attached error report for this batch.");
}
messageBodyPart.setText(message.toString());
multipart.addBodyPart(messageBodyPart);
msg.setContent(multipart);
msg.setSentDate(CurrentTimeService.getCurrentDateTime());
// attach control report
createAttachment(messageBodyPart, multipart, controlReport);
// attach error report
createAttachment(messageBodyPart, multipart, errorReport);
Transport.send(msg);
}
catch (javax.mail.MessagingException me) {
LOG.error(me);
}
}
private static void createAttachment(BodyPart messageBodyPart, Multipart multipart, File attachmentFile) throws javax.mail.MessagingException {
if (attachmentFile.isFile()) {
messageBodyPart = new MimeBodyPart();
DataSource controlReportSource = new FileDataSource(attachmentFile);
messageBodyPart.setDataHandler(new DataHandler(controlReportSource));
messageBodyPart.setFileName(attachmentFile.getName());
multipart.addBodyPart(messageBodyPart);
}
}