From bf0a11f3a01812bd11bd9493ab897f3a4581c57e Mon Sep 17 00:00:00 2001 From: patxi Date: Mon, 28 Mar 2016 16:18:17 +0200 Subject: [PATCH] Use velocity templates to build email --- pom.xml | 4 ++++ .../code/dad/mail/batch/StudentItemProcessor.java | 14 ++++++++++++-- src/main/resources/templates/email-body.vm | 7 +++++++ src/main/resources/templates/email-subject.vm | 1 + 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/templates/email-body.vm create mode 100644 src/main/resources/templates/email-subject.vm diff --git a/pom.xml b/pom.xml index 1178a71..9b350dc 100644 --- a/pom.xml +++ b/pom.xml @@ -38,6 +38,10 @@ spring-boot-starter-test test + + org.apache.velocity + velocity + org.scala-lang scala-library diff --git a/src/main/java/es/urjc/code/dad/mail/batch/StudentItemProcessor.java b/src/main/java/es/urjc/code/dad/mail/batch/StudentItemProcessor.java index 70e97e9..8d466d7 100644 --- a/src/main/java/es/urjc/code/dad/mail/batch/StudentItemProcessor.java +++ b/src/main/java/es/urjc/code/dad/mail/batch/StudentItemProcessor.java @@ -1,7 +1,11 @@ package es.urjc.code.dad.mail.batch; +import java.util.HashMap; +import java.util.Map; + import javax.mail.internet.MimeMessage; +import org.apache.velocity.app.VelocityEngine; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.batch.item.ItemProcessor; @@ -9,6 +13,7 @@ import org.springframework.core.io.FileSystemResource; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; +import org.springframework.ui.velocity.VelocityEngineUtils; import es.urjc.code.dad.mail.batch.model.Student; @@ -18,6 +23,8 @@ public class StudentItemProcessor implements ItemProcessor @Autowired private JavaMailSender mailSender; + @Autowired + private VelocityEngine engine; private String sender; private String attachment; @@ -32,10 +39,13 @@ public MimeMessage process(Student student) throws Exception { MimeMessageHelper helper = new MimeMessageHelper(message, true); - helper.setSubject("Your code"); + Map model = new HashMap<>(); + model.put("name", student.getFullname()); + model.put("code", student.getCode()); helper.setFrom(sender); helper.setTo(student.getEmail()); - helper.setText("This is your code: " + student.getCode() + ".\nFind instructions attached to this email."); + helper.setSubject(VelocityEngineUtils.mergeTemplateIntoString(engine, "email-subject.vm", "UTF-8", model)); + helper.setText(VelocityEngineUtils.mergeTemplateIntoString(engine, "email-body.vm", "UTF-8", model)); log.info("Preparing message for: " + student.getEmail()); diff --git a/src/main/resources/templates/email-body.vm b/src/main/resources/templates/email-body.vm new file mode 100644 index 0000000..83ba974 --- /dev/null +++ b/src/main/resources/templates/email-body.vm @@ -0,0 +1,7 @@ +Hi, $name + +This is your code: $code + +Find instructions attached to this email. + +Regards. \ No newline at end of file diff --git a/src/main/resources/templates/email-subject.vm b/src/main/resources/templates/email-subject.vm new file mode 100644 index 0000000..24228f7 --- /dev/null +++ b/src/main/resources/templates/email-subject.vm @@ -0,0 +1 @@ +Your code \ No newline at end of file