/* * ============LICENSE_START========================================== * ONAP Portal SDK * =================================================================== * Copyright © 2017 AT&T Intellectual Property. All rights reserved. * =================================================================== * * Unless otherwise specified, all software contained herein is licensed * under the Apache License, Version 2.0 (the "License"); * you may not use this software except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Unless otherwise specified, all documentation contained herein is licensed * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); * you may not use this documentation except in compliance with the License. * You may obtain a copy of the License at * * https://creativecommons.org/licenses/by/4.0/ * * Unless required by applicable law or agreed to in writing, documentation * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * ============LICENSE_END============================================ * * */ package org.onap.portalsdk.analytics.util; import java.io.File; import java.util.ArrayList; import java.util.List; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.mail.javamail.MimeMessagePreparator; import org.onap.portalsdk.analytics.error.RaptorException; import org.onap.portalsdk.analytics.system.AppUtils; import org.onap.portalsdk.core.util.SystemProperties; import org.springframework.core.io.FileSystemResource; public class EmailUtils { public EmailUtils(){ super(); mailSender = new JavaMailSenderImpl(); mailSender.setProtocol("smtp"); mailSender.setHost(SystemProperties.getProperty(SystemProperties.MAIL_SERVER_HOST)); mailSender.setPort(Integer.parseInt(SystemProperties.getProperty(SystemProperties.MAIL_SERVER_PORT))); } private JavaMailSenderImpl mailSender; public void sendEmailWithAttachment(String subj, String mesg, String[] toList, String[] ccList, String[] filePathAndName) throws RaptorException { String from = AppUtils.getDefaultEmailSender(); List mailAttachList = new ArrayList(); for (int i = 0; i < filePathAndName.length; i++) { MailAttachment mailAttachment = new MailAttachment(); mailAttachment.setAttachmentType(MailAttachment.FILE_ATTACHMENT); String fileName = filePathAndName[i].substring(filePathAndName[i].lastIndexOf("/") + 1); mailAttachment.setFileName(fileName); mailAttachment.setFilePathName(filePathAndName[i]); mailAttachList.add(mailAttachment); } notifyWithAttachments(mesg, toList, from, subj, ccList, null, mailAttachList, true); } public void sendEmailNoAttachment(String subj, String mesg, String[] toList, String[] ccList) throws RaptorException{ String from = AppUtils.getDefaultEmailSender(); notify(mesg, toList, from, subj, ccList, null, true); } public void notify(String message, String to, String from, boolean contentTypeHtml) { notify(message, to, from, null, null, null, contentTypeHtml); } public void notify(String message, String to, String from, String subject, boolean contentTypeHtml) { notify(message, to, from, subject, null, null, contentTypeHtml); } public void notify(String message, String to, String from, String subject, String cc, String bcc, boolean contentTypeHtml) { String[] toList = new String[1]; String[] ccList = null; String[] bccList = null; if (cc != null) { ccList = new String[1]; ccList[0] = cc; } if (bcc != null) { bccList = new String[1]; bccList[0] = bcc; } toList[0] = to; notify(message, toList, from, subject, ccList, bccList, contentTypeHtml); } public void notify(String message, String[] to, String from, String subject, String[] cc, String[] bcc, boolean contentTypeHtml) { final MimeMessagePreparator messagePreparator = getMessagePreparator(message, to, from, subject, cc, bcc, null, contentTypeHtml); Thread mailerThread = new Thread() { public void run() { getMailSender().send(messagePreparator); } }; mailerThread.start(); } public void notifyWithAttachments(String message, String[] to, String from, String subject, String[] cc, String[] bcc, List mailAttachments, boolean contentTypeHtml) { final MimeMessagePreparator messagePreparator = getMessagePreparator(message, to, from, subject, cc, bcc, mailAttachments, contentTypeHtml); Thread mailerThread = new Thread() { public void run() { getMailSender().send(messagePreparator); } }; mailerThread.start(); } private static MimeMessagePreparator getMessagePreparator(final String message, final String[] to, final String from, final String subject, final String[] cc, final String[] bcc, final List mailAttachments, final boolean contentTypeHtml) { final MimeMessagePreparator messagePreparator = new MimeMessagePreparator() { public void prepare(MimeMessage mimeMessage) throws MessagingException { MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); helper.setFrom(from); helper.setTo(to); helper.setText(message, contentTypeHtml); if (subject != null) { helper.setSubject(subject); } if (cc != null) { System.out.println(cc); helper.setCc(cc); } if (bcc != null) { helper.setBcc(bcc); } if (mailAttachments != null && mailAttachments.size() > 0) { for (int i = 0; i < mailAttachments.size(); i++) { MailAttachment mailAttachment = (MailAttachment) mailAttachments.get(i); if (mailAttachment.getAttachmentType() == MailAttachment.FILE_ATTACHMENT) { helper.addAttachment(mailAttachment.getFileName(), new FileSystemResource(new File(mailAttachment .getFilePathName()))); } else if (mailAttachment.getAttachmentType() == MailAttachment.INLINE_ATTACHMENT) { helper.addInline(mailAttachment.getFileName(), new FileSystemResource(new File(mailAttachment .getFilePathName()))); } } } } }; return messagePreparator; } public JavaMailSenderImpl getMailSender() { return mailSender; } public void setMailSender(JavaMailSenderImpl mailSender) { this.mailSender = mailSender; } }