Java tutorial
/* * 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); } }