I am using JavaMailSender with Spring Boot. I have a mail template, which has title and content. The content has /n or /t characters. But this does not effect on template. Mails are being received like those characters are not even exist. How can I apply these characters to the template?
My template: (.ftlh ):
<#import "mail-template.ftlh" as layout>
<@layout.emailLayout title="Announcement" mailImage="image" clientBaseUrl="${frontendUrl}"; section>
<#if section = "mailBody">
<title>Announcent</title>
Dear <strong>${name}</strong>,<br/>
<strong>${title}</strong>
<br/><br/>
<strong>${content}</strong>
<br/><br/> </#if>
</@layout.emailLayout>
MailSender method:
@Async
@Override
public void sendMail(EmailData mail) throws MessagingException, TemplateException, IOException {
var to = mail.getTo();
var template = mail.getTemplate();
var model = getModelWithFooterParam(mail.getModel());
var mimeMessage = javaMailSender.createMimeMessage();
var mailSubject = messageService.getMessage(template.getMailSubjectCode(), mail.getLocale());
// init helper
var helper = new MimeMessageHelper(mimeMessage, MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED, "UTF-8");
helper.setSubject(mailSubject);
helper.setTo(to);
helper.setFrom(from, displayName);
String emailContent = getEmailContent(template.toString(), model);
helper.setText(emailContent, true);
// send mime message
javaMailSender.send(mimeMessage);
}
private String getEmailContent(String templateFile, Map<String, Object> model) throws IOException,
TemplateException {
StringWriter stringWriter = new StringWriter();
var template = configuration.getTemplate(templateFile);
template.process(model, stringWriter);
return stringWriter.getBuffer().toString();
}
private Map<String, Object> getModelWithFooterParam(Map<String, Object> model){
var result = new HashMap<String, Object>();
if (model != null) {
result.putAll(model);
}
result.put(MailModelKeys.FOOTER_PROPS, mailFooterProps);
result.put(MailModelKeys.FRONTEND_URL, frontendBaseUrl);
return result;
}
the title and the content are in the model map.
thanks.