【发布时间】:2017-03-15 18:12:57
【问题描述】:
我正在尝试使用 Spring 4 和 Thymeleaf 模板发送简单的 HTML 邮件。在我的 java 类中,我有:
public void sendMail() throws Exception {
if (!flag){
throw new IOException("Mail Sending Forbiden");
}
// Prepare the evaluation context
final Context ctx = new Context();
List<FacebookFeed> list = getFeedsList();
ctx.setVariable("message", "message");
//Prepare message using a Spring helper
final MimeMessage mimeMessage = this.mailSender.createMimeMessage();
final MimeMessageHelper message = new MimeMessageHelper(mimeMessage, "UTF-8");
message.setSubject("Example HTML email (simple)");
message.setTo(recipient);
// Create the HTML body using Thymeleaf
final String htmlContent = this.htmlTemplateEngine.process("/static/test", ctx);
System.out.println(htmlContent);
message.setText(htmlContent, true /* isHtml */);
// Send email
this.mailSender.send(mimeMessage);
}
我在我的 html 页面中使用 thymeleaf th:text:
<span th:text="${message}"></span>
但它不起作用。我在模板中得到的只是同一个 .html 页面。
th:text="${message}" - 不起作用
有什么想法吗?
【问题讨论】:
-
如何创建
htmlTemplateEngine?属性spring.thymeleaf.suffix是否设置为html? -
无论如何,如果你可以切换到 Spring Boot 我推荐使用这个库:Email Tools
-
据我所知,
htmlTemplateEngine应该是org.thymeleaf.spring4.SpringTemplateEngine的一个实例,你应该能够在你的类中自动装配。如果这是正确的,我会直接跳入process方法并调试,直到我看不出为什么不使用上下文