【问题标题】:Spring + Velocity Email template not rendering Html on mail bodySpring + Velocity 电子邮件模板未在邮件正文上呈现 Html
【发布时间】:2015-03-30 20:58:54
【问题描述】:

我正在尝试在 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>

【问题讨论】:

    标签: java spring-mvc velocity


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2022-01-24
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 2012-11-28
      • 2020-01-14
      • 2020-09-18
      • 1970-01-01
      • 2022-01-20
      相关资源
      最近更新 更多