Package com.commander4j.email

Source Code of com.commander4j.email.JeMail

package com.commander4j.email;

import javax.mail.MessagingException;
import org.apache.commons.mail.*;
import org.apache.log4j.Logger;
import com.commander4j.db.JDBControl;
import com.commander4j.util.JUtility;

public class JeMail
{
  private static String SMTP_HOST_LOADED = "N/A";
  private static String SMTP_AUTH_REQD;
  private static String SMTP_HOST_NAME;
  private static String SMTP_AUTH_USER;
  private static String SMTP_AUTH_PWD;
  private static String SMTP_FROM_ADRESS;
  private static String MAIL_SMTP_PORT;
  private static String MAIL_SMTP_SSL_PORT;
  private static String SMTP_USE_SSL;
  private static String SMTP_USE_TLS;
  private final Logger logger = Logger.getLogger(JeMail.class);
  private String hostID;
  private String sessionID;

  public JeMail(String host, String session)
  {
    setHostID(host);
    setSessionID(session);

    JDBControl ctrl = new JDBControl(getHostID(), getSessionID());

    if (SMTP_HOST_LOADED.equals("N/A") == true)
    {
      SMTP_AUTH_REQD = ctrl.getKeyValueWithDefault("MAIL_SMTP_AUTH_REQD", "true", "SMTP Authentication Reqd");
      SMTP_HOST_NAME = ctrl.getKeyValueWithDefault("MAIL_SMTP_HOST_NAME", "mail.testsmtp.com", "SMTP Server for sending emails");
      SMTP_AUTH_USER = ctrl.getKeyValueWithDefault("MAIL_SMTP_AUTH_USER", "mailUser", "SMTP Username");
      SMTP_AUTH_PWD = ctrl.getKeyValueWithDefault("MAIL_SMTP_AUTH_PWD", "mailPassword", "SMTP Password");
      MAIL_SMTP_PORT = ctrl.getKeyValueWithDefault("MAIL_SMTP_PORT", "25", "SMTP Port");
      MAIL_SMTP_SSL_PORT = ctrl.getKeyValueWithDefault("MAIL_SMTP_SSL_PORT", "465", "SMTP SSL Port");
      SMTP_FROM_ADRESS = ctrl.getKeyValueWithDefault("MAIL_SMTP_FROM_ADRESS", "Commander4j", "From Email");
      SMTP_USE_SSL = ctrl.getKeyValueWithDefault("MAIL_SMTP_USE_SSL", "False", "Use SSL");
      SMTP_USE_TLS = ctrl.getKeyValueWithDefault("MAIL_SMTP_USE_TLS", "False", "Use TLS");
      SMTP_HOST_LOADED = host;
    }

  }

  private void setSessionID(String session)
  {
    sessionID = session;
  }

  private void setHostID(String host)
  {
    hostID = host;
  }

  private String getSessionID()
  {
    return sessionID;
  }

  private String getHostID()
  {
    return hostID;
  }

  public void setSMTPServer(String hostName, String userName, String password)
  {
    SMTP_HOST_NAME = hostName;
    SMTP_AUTH_USER = userName;
    SMTP_AUTH_PWD = password;
  }

  public void postMail(String recipientsTO[],   String subject, String message, String attachmentFilename, String attachmentLongFilename) throws MessagingException
  {
   
    logger.debug("SMTP_AUTH_REQD="+SMTP_AUTH_REQD);
    logger.debug("MAIL_SMTP_HOST_NAME="+SMTP_HOST_NAME);
    logger.debug("MAIL_SMTP_AUTH_USER="+SMTP_AUTH_USER);
    logger.debug("MAIL_SMTP_AUTH_PWD=********");
    logger.debug("MAIL_SMTP_PORT="+MAIL_SMTP_PORT);
    logger.debug("MAIL_SMTP_SSL_PORT="+MAIL_SMTP_SSL_PORT);
    logger.debug("MAIL_SMTP_FROM_ADRESS="+SMTP_FROM_ADRESS);
    logger.debug("MAIL_SMTP_USE_SSL="+SMTP_USE_SSL);
   
    //Email email = new SimpleEmail();
    logger.debug("Creating MultiPart Email");
    MultiPartEmail email = new MultiPartEmail();

    logger.debug("Setting Host Name to "+SMTP_HOST_NAME);
    email.setHostName(SMTP_HOST_NAME);
    logger.debug("Setting SMTP Port to "+MAIL_SMTP_PORT);
    email.setSmtpPort(Integer.valueOf(MAIL_SMTP_PORT));
   
    logger.debug("Setting SMTP SSL Port to "+MAIL_SMTP_SSL_PORT);
    email.setSslSmtpPort(MAIL_SMTP_SSL_PORT);
   
    logger.debug("Setting Use SSL on Connect to  "+SMTP_USE_SSL);
    email.setSSLOnConnect(Boolean.valueOf(SMTP_USE_SSL))
   
    logger.debug("Authentication Required =  "+SMTP_AUTH_REQD);
   
    if (SMTP_AUTH_REQD.toUpperCase().equals("TRUE"))
    {
      email.setAuthenticator(new DefaultAuthenticator(SMTP_AUTH_USER, SMTP_AUTH_PWD));

    }

    logger.debug("Setting SMTP USE SSL =  "+SMTP_USE_SSL);
    email.setSSLOnConnect(Boolean.valueOf(SMTP_USE_SSL));

    logger.debug("Setting SMTP USE TLS =  "+SMTP_USE_TLS);
    email.setStartTLSEnabled(Boolean.valueOf(SMTP_USE_TLS));
    email.setStartTLSRequired(Boolean.valueOf(SMTP_USE_TLS));
   
    try
    {
      logger.debug("From Address =  "+SMTP_FROM_ADRESS);
      email.setFrom(SMTP_FROM_ADRESS);
      email.setSubject(subject);
      email.setMsg(message+"\n\n");
      for (int x = 1; x <= recipientsTO.length; x++)
      {
        logger.debug("Add To Address =  "+recipientsTO[x - 1]);
        email.addTo(recipientsTO[x - 1]);
      }
     
      if (JUtility.replaceNullStringwithBlank(attachmentFilename).equals("")==false)
      {
          // Create the attachment
         EmailAttachment attachment = new EmailAttachment();
          attachment.setPath(attachmentLongFilename);
          attachment.setDisposition(EmailAttachment.ATTACHMENT);
          attachment.setDescription(attachmentFilename);
          attachment.setName(attachmentFilename);

          // add the attachment
          logger.debug("Add Attachment");
          email.attach(attachment);
      }

      logger.debug("Sending");
      email.send();
      logger.debug("Sent successfully");
    }
    catch (EmailException e)
    {
      logger.error("Unable to send email : "+e.getCause().getMessage());
    }

  }

}
TOP

Related Classes of com.commander4j.email.JeMail

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.