【问题标题】:Mail sending using Spring4 and Thymeleaf使用 Spring 和 Thymeleaf 发送邮件
【发布时间】: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 方法并调试,直到我看不出为什么不使用上下文

标签: html spring thymeleaf


【解决方案1】:

我的错误是:

        templateResolver.setTemplateMode(TemplateMode.TEXT);

而不是

        templateResolver.setTemplateMode(TemplateMode.HTML);

【讨论】:

  • 请告诉我们这个templateResolver 来自哪里?问题中根本没有提到这一点
猜你喜欢
  • 2017-08-03
  • 2013-01-21
  • 2021-07-10
  • 2018-08-19
  • 2016-09-01
  • 1970-01-01
  • 2018-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多