Janani

11
reputation
4

package com.firstdata.tokenextractor.batch.processor;

import java.io.StringWriter; import java.util.ArrayList;

import javax.mail.internet.MimeMessage;

import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.VelocityEngine; import org.apache.velocity.runtime.RuntimeConstants; import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader; import org.springframework.batch.core.StepContribution; import org.springframework.batch.core.scope.context.ChunkContext; import org.springframework.batch.repeat.RepeatStatus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Component;

import com.firstdata.tokenextractor.TokenExtractorBatchJob; @SuppressWarnings("unused") @Component public class EmailSender {

@Autowired
private JavaMailSender mailSender;

@Autowired
private Environment env;

private static Logger logger = LogManager.getLogger(EmailSender.class);

public void sendEmail(String messageToBeSent ) throws Exception {
    logger.info("Going to send email notification");
    String mailTo = env.getProperty("mailTo");
    String mailFrom = env.getProperty("mailFrom");
    logger.debug("Recipient list: " + mailTo);
    logger.debug("Mail Sender: " + mailFrom);
    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true, "utf-8");
    if (mailFrom != null) {
        helper.setFrom(mailFrom);
    } else {
        helper.setFrom("TransArmorAdmin@firstdata.com");
    }
    if (mailTo != null) {
        helper.setTo(mailTo.split(","));
    } else {
        helper.setTo("TransArmorSupport@firstdata.com");
    }
    helper.setText(geContentFromTemplate(messageToBeSent), true);
    helper.setSubject(env.getProperty("mailSubject"));
    mailSender.send(message);
    logger.info("Mail sent successfully");
}

private String geContentFromTemplate(String message ) {


    VelocityEngine ve = new VelocityEngine();
    ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
    ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
    ve.init();
    VelocityContext velocityContext = new VelocityContext();
    velocityContext.put("message", message);

     return RepeatStatus.FINISHED;
    }
    velocityContext.put("signature", env.getProperty("signature"));
    StringWriter stringWriter = new StringWriter();
    ve.mergeTemplate("templates/email-template.vm", "UTF-8", velocityContext, stringWriter);
    return stringWriter.toString();
}

}