Spring + Velocity电子邮件模板不在邮件正文上呈现Html

时间:2015-01-31 13:03:59

标签: java spring-mvc velocity

我正在尝试在spring + velocity中创建电子邮件模板。我正在从此获取电子邮件,也从模板获取内容,但我的模板中的html未在邮件正文中呈现。 这是我发送电子邮件模板的java函数

public void sendMail(String to, String subject, String body)
{
    SimpleMailMessage message = new SimpleMailMessage();

    message.setFrom(this.userName);
    message.setTo(to);
    message.setSubject(subject);
    message.setText(body);


    Template template = velocityEngine.getTemplate("Templates/EmailTemplate.vm");
    VelocityContext velocityContext = new VelocityContext();
    velocityContext.put("firstName", "Yashwant");
    velocityContext.put("lastName", "Chavan");
    velocityContext.put("location", "Pune");

    StringWriter stringWriter = new StringWriter();

    template.merge(velocityContext, stringWriter);
    message.setText(stringWriter.toString());

    mailSender.send(message);
}

我的速度模板是

<html>
 <body>
<b>Dear ${firstName} ${lastName}</b>

 Sending Email Using Spring Smtp Email + Velocity Template from ${location}     location.

Thanks
</body>
</html>

1 个答案:

答案 0 :(得分:2)

似乎SimpleMailMessage只发送纯文本电子邮件,因此您无法使用html。

查看使用MimeMessageHelper的Spring文档中的示例。 MimeMessageHelper方法setText具有第二个布尔参数,您可以使用该参数指定文本是否为html(例如,传入true表示文本为html)。请查看文档中的以下示例:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mail.html#mail-usage-mime

(在文档中还有基于Velocity的示例)。