diff options
Diffstat (limited to 'ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/EmailUtils.java')
-rw-r--r-- | ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/EmailUtils.java | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/EmailUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/EmailUtils.java new file mode 100644 index 00000000..61ac90c2 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/EmailUtils.java @@ -0,0 +1,183 @@ +/* + * ============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<MailAttachment> mailAttachList = new ArrayList<MailAttachment>(); + + 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; + } + + +} |