Spring + Velocity 电子邮件模板未在邮件正文中呈现 Html
Spring + Velocity Email template not rendering Html on mail body
我正在尝试在 spring + velocity 中创建电子邮件模板。我正在从中获取电子邮件和模板中的内容,但是我的 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>
似乎 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 的示例)。
我正在尝试在 spring + velocity 中创建电子邮件模板。我正在从中获取电子邮件和模板中的内容,但是我的 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>
似乎 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 的示例)。