diff options
Diffstat (limited to 'src/main/java/com/att/nsa/cambria/utils/Emailer.java')
-rw-r--r-- | src/main/java/com/att/nsa/cambria/utils/Emailer.java | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/src/main/java/com/att/nsa/cambria/utils/Emailer.java b/src/main/java/com/att/nsa/cambria/utils/Emailer.java deleted file mode 100644 index a71370a..0000000 --- a/src/main/java/com/att/nsa/cambria/utils/Emailer.java +++ /dev/null @@ -1,214 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START======================================================= - * org.onap.dmaap - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file 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. - * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * - *******************************************************************************/ -package com.att.nsa.cambria.utils; - -import java.io.IOException; -import java.util.Properties; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -import javax.mail.BodyPart; -import javax.mail.Message; -import javax.mail.Multipart; -import javax.mail.PasswordAuthentication; -import javax.mail.Session; -import javax.mail.Transport; -import javax.mail.internet.InternetAddress; -import javax.mail.internet.MimeBodyPart; -import javax.mail.internet.MimeMessage; -import javax.mail.internet.MimeMultipart; - -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; - -import com.att.ajsc.filemonitor.AJSCPropertiesMap; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import com.att.nsa.cambria.constants.CambriaConstants; -import com.att.nsa.drumlin.till.nv.rrNvReadable; - -/** - * Send an email from a message. - * - * @author author - */ -public class Emailer -{ - public static final String kField_To = "to"; - public static final String kField_Subject = "subject"; - public static final String kField_Message = "message"; - - public Emailer() - { - fExec = Executors.newCachedThreadPool (); - // fSettings = settings; - } - - public void send ( String to, String subj, String body ) throws IOException - { - final String[] addrs = to.split ( "," ); - - if ( to.length () > 0 ) - { - final MailTask mt = new MailTask ( addrs, subj, body ); - fExec.submit ( mt ); - } - else - { - log.warn ( "At least one address is required." ); - } - } - - public void close () - { - fExec.shutdown (); - } - - private final ExecutorService fExec; - //private final rrNvReadable fSettings; - - //private static final Logger log = LoggerFactory.getLogger ( Emailer.class ); - - private static final EELFLogger log = EELFManager.getInstance().getLogger(Emailer.class); - - public static final String kSetting_MailAuthUser = "mailLogin"; - public static final String kSetting_MailAuthPwd = "mailPassword"; - public static final String kSetting_MailFromEmail = "mailFromEmail"; - public static final String kSetting_MailFromName = "mailFromName"; - public static final String kSetting_SmtpServer = "mailSmtpServer"; - public static final String kSetting_SmtpServerPort = "mailSmtpServerPort"; - public static final String kSetting_SmtpServerSsl = "mailSmtpServerSsl"; - public static final String kSetting_SmtpServerUseAuth = "mailSmtpServerUseAuth"; - - private class MailTask implements Runnable - { - public MailTask ( String[] to, String subject, String msgBody ) - { - fToAddrs = to; - fSubject = subject; - fBody = msgBody; - } - - private String getSetting ( String settingKey, String defval ) - { - //return fSettings.getString ( settingKey, defval ); - String strSet = AJSCPropertiesMap.getProperty(CambriaConstants.msgRtr_prop,settingKey); - if(strSet==null)strSet=defval; - return strSet; - } - - // we need to get setting values from the evaluator but also the channel config - private void makeSetting ( Properties props, String propKey, String settingKey, String defval ) - { - props.put ( propKey, getSetting ( settingKey, defval ) ); - } - - private void makeSetting ( Properties props, String propKey, String settingKey, int defval ) - { - makeSetting ( props, propKey, settingKey, "" + defval ); - } - - private void makeSetting ( Properties props, String propKey, String settingKey, boolean defval ) - { - makeSetting ( props, propKey, settingKey, "" + defval ); - } - - @Override - public void run () - { - final StringBuffer tag = new StringBuffer (); - final StringBuffer addrList = new StringBuffer (); - tag.append ( "(" ); - for ( String to : fToAddrs ) - { - if ( addrList.length () > 0 ) - { - addrList.append ( ", " ); - } - addrList.append ( to ); - } - tag.append ( addrList.toString () ); - tag.append ( ") \"" ); - tag.append ( fSubject ); - tag.append ( "\"" ); - - log.info ( "sending mail to " + tag ); - - try - { - final Properties prop = new Properties (); - makeSetting ( prop, "mail.smtp.port", kSetting_SmtpServerPort, 587 ); - prop.put ( "mail.smtp.socketFactory.fallback", "false" ); - prop.put ( "mail.smtp.quitwait", "false" ); - makeSetting ( prop, "mail.smtp.host", kSetting_SmtpServer, "smtp.it.att.com" ); - makeSetting ( prop, "mail.smtp.auth", kSetting_SmtpServerUseAuth, true ); - makeSetting ( prop, "mail.smtp.starttls.enable", kSetting_SmtpServerSsl, true ); - - final String un = getSetting ( kSetting_MailAuthUser, "" ); - final String pw = getSetting ( kSetting_MailAuthPwd, "" ); - final Session session = Session.getInstance ( prop, - new javax.mail.Authenticator() - { - @Override - protected PasswordAuthentication getPasswordAuthentication() - { - return new PasswordAuthentication ( un, pw ); - } - } - ); - - final Message msg = new MimeMessage ( session ); - - final InternetAddress from = new InternetAddress ( - getSetting ( kSetting_MailFromEmail, "team@sa2020.it.att.com" ), - getSetting ( kSetting_MailFromName, "The GFP/SA2020 Team" ) ); - msg.setFrom ( from ); - msg.setReplyTo ( new InternetAddress[] { from } ); - msg.setSubject ( fSubject ); - - for ( String toAddr : fToAddrs ) - { - final InternetAddress to = new InternetAddress ( toAddr ); - msg.addRecipient ( Message.RecipientType.TO, to ); - } - - final Multipart multipart = new MimeMultipart ( "related" ); - final BodyPart htmlPart = new MimeBodyPart (); - htmlPart.setContent ( fBody, "text/plain" ); - multipart.addBodyPart ( htmlPart ); - msg.setContent ( multipart ); - - Transport.send ( msg ); - - log.info ( "mailing " + tag + " off without error" ); - } - catch ( Exception e ) - { - log.warn ( "Exception caught for " + tag, e ); - } - } - - private final String[] fToAddrs; - private final String fSubject; - private final String fBody; - } -} |