br.com.jreader.model.services.EmailService.java Source code

Java tutorial

Introduction

Here is the source code for br.com.jreader.model.services.EmailService.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.jreader.model.services;

import br.com.jreader.model.entities.User;
import br.com.jreader.util.Context;
import br.com.jreader.util.JReaderUtils;
import java.util.HashMap;
import java.util.Map;
import javax.mail.internet.MimeMessage;
import org.apache.velocity.app.VelocityEngine;
import org.springframework.mail.MailException;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.mail.javamail.MimeMessagePreparator;
import org.springframework.ui.velocity.VelocityEngineUtils;

/**
 *
 * @author jonat
 */
public class EmailService {

    private JavaMailSender mailSender;
    private VelocityEngine velocityEngine;

    public void setMailSender(JavaMailSender mailSender) {
        this.mailSender = mailSender;
    }

    public void setVelocityEngine(VelocityEngine velocityEngine) {
        this.velocityEngine = velocityEngine;
    }

    public void sendEmailRegistration(final User user) throws MailException {
        MimeMessagePreparator preparator = new MimeMessagePreparator() {

            @Override
            public void prepare(MimeMessage mm) throws Exception {
                MimeMessageHelper message = new MimeMessageHelper(mm);
                message.setTo(user.getEmail());
                message.setSubject(
                        JReaderUtils.getTranslation("br.com.jreader.util.lang.messages", "subject_mail_confirm"));
                message.setFrom(JReaderUtils.getTranslation("br.com.jreader.util.lang.messages", "app_title"));
                Map<String, Object> model = new HashMap<>();
                model.put("user", user);
                model.put("context", Context.getContextPath());
                String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
                        "email-templates/registration-confirmation.vm", "UTF-8", model);
                message.setText(text, true);

            }
        };
        this.mailSender.send(preparator);
    }
}