com.mocktpo.util.EmailUtils.java Source code

Java tutorial

Introduction

Here is the source code for com.mocktpo.util.EmailUtils.java

Source

package com.mocktpo.util;

import com.mocktpo.domain.License;
import com.mocktpo.util.constants.GlobalConstants;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.internet.MimeMessage;

public class EmailUtils {

    private static final Logger logger = LogManager.getLogger();

    private EmailUtils() {
    }

    public static void sendActivationCode(License lic) {
        JavaMailSenderImpl sender = new JavaMailSenderImpl();
        sender.setHost(GlobalConstants.SMTP_HOST);
        sender.setUsername(GlobalConstants.SMTP_SENDER_EMAIL);
        sender.setPassword(GlobalConstants.SMTP_SENDER_PASSWORD);
        MimeMessage message = sender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message);
        try {
            helper.setFrom(GlobalConstants.SMTP_SENDER_EMAIL);
            helper.setBcc(GlobalConstants.SMTP_SENDER_EMAIL);
            helper.setTo(lic.getEmail());
            helper.setSubject(GlobalConstants.LICENSE_EMAIL_SUBJECT);
            helper.setText(getActivationCode(lic));
        } catch (Exception e) {
            e.printStackTrace();
        }
        sender.send(message);
    }

    private static String getActivationCode(License lic) {
        String plain = prepareActivationCode(lic);
        String encoded = ActivationCodeUtils.encode(plain);
        encoded = StringUtils.replace(encoded, "-----BEGIN PGP MESSAGE-----\nVersion: BCPG v1.52",
                "-----BEGIN MOCKTPO ACTIVATION CODE-----");
        encoded = StringUtils.replace(encoded, "-----END PGP MESSAGE-----",
                "\n-----END MOCKTPO ACTIVATION CODE-----");
        return encoded;
    }

    private static String prepareActivationCode(License lic) {
        StringBuilder sb = new StringBuilder();
        sb.append("app_name=");
        sb.append(lic.getAppName());
        sb.append("\nedition=");
        sb.append(lic.getEdition());
        sb.append("\nmajor_version=");
        sb.append(lic.getMajorVersion());
        sb.append("\nemail=");
        sb.append(lic.getEmail());
        sb.append("\nhardware=");
        sb.append(lic.getHardware());
        sb.append("\nvalid_through=");
        sb.append(lic.getValidThrough());
        return sb.toString();
    }
}