/*******************************************************************************
* Copyright © 2012-2015 eBay Software Foundation
* This program is dual licensed under the MIT and Apache 2.0 licenses.
* Please see LICENSE for more information.
*******************************************************************************/
package com.ebay.jetstream.notification;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ebay.jetstream.config.AbstractNamedBean;
import com.ebay.jetstream.xmlser.XSerializable;
public class MailConfiguration extends AbstractNamedBean implements XSerializable{
private static final Logger LOGGER = LoggerFactory.getLogger("com.ebay.jetstream.notification.MailConfiguration");
private String alertList;
private String sendFrom;
private AlertSeverity alertSeverity = AlertSeverity.SEVERE;
private String mailServer;
public String getSendFrom() {
return sendFrom;
}
public void setSendFrom(String sendFrom) {
this.sendFrom = sendFrom;
LOGGER.warn( "send mail from: "+ this.sendFrom);
}
public String getMailServer() {
return mailServer;
}
public void setMailServer(String mailserver) {
this.mailServer = mailserver;
LOGGER.warn( "Mail host set to: "+ this.mailServer);
}
public void setAlertSeverity(String severity) {
if (severity == null || severity.toString().length() ==0) {
LOGGER.warn( "severity is null or empty, use the default=" + AlertSeverity.SEVERE);
return;
}
this.alertSeverity = AlertSeverity.valueOf( severity);
LOGGER.warn( "MailConfiguration set severity=" + this.alertSeverity);
}
public AlertSeverity getAlertSeverity(){
return alertSeverity;
}
/*** should be comma-separated email list
* @param emailListString: should be comma-separated. "xyz@ebay.com,abcd@ebay.com"
*/
public void setAlertList(String emailListString) {
if (emailListString == null || emailListString.length() ==0) {
LOGGER.error( "alert_list should not be null or empty. use the default=" + alertList);
return;
}
emailListString = emailListString.replaceAll(" ", "");
String[] emailList = emailListString.split(",");
StringBuffer validEmailStr = new StringBuffer();
for (int i=0; i < emailList.length; i++){
if(isValidEmailAddress(emailList[i]))
validEmailStr.append(emailList[i]+",");
}
alertList = validEmailStr.toString().substring(0, validEmailStr.length()-1);
LOGGER.warn( "MailConfiguration set alertList=" + alertList);
}
public static boolean isValidEmailAddress(String email) {
boolean result = true;
try {
InternetAddress emailAddr = new InternetAddress(email);
emailAddr.validate();
} catch (AddressException ex) {
result = false;
}
return result;
}
public String getAlertList(){
return alertList;
}
}