如何使用 Thymeleaf 设计 HTML 电子邮件正文

Posted

技术标签:

【中文标题】如何使用 Thymeleaf 设计 HTML 电子邮件正文【英文标题】:How to design the HTML email body using Thymeleaf 【发布时间】:2019-04-17 19:50:43 【问题描述】:

是否可以在不使用 MVC 路由的情况下通过 Thymeleaf 创建 html 电子邮件正文?

【问题讨论】:

你有什么问题? 您好,欢迎来到 Stack Overflow。您注意到您的问题被否决了。那是因为我们大多数人通常都想知道您的问题是什么。您能否稍微扩展您的问题,并清楚地包括您的问题是什么。示例代码总是一个好的开始。看看How to Ask 和tour。您可以点击问题下方的编辑edit您的问题。 【参考方案1】:

您可以在此处找到如何实现此目的的示例。

@Bean
public ITemplateEngine htmlTemplateEngine() 
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setPrefix("/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCacheable(false);
templateEngine.setTemplateResolver(templateResolver);
return templateEngine;

接下来创建如下所示的上下文

final Context ctx = new Context();

将字符串/对象插入到上下文中。

String inLineMessage = "String/Object to insert in HTML";
ctx.setVariable("inLineMessage ", commitAllocationResponse);

调用方法

String html = htmlTemplateEngine.process("//templates//EmailTemplate.html", ctx);

百里香中的内置函数

check the size of list
th:if="$#lists.size(exampleList) > 0">
//String equals check
th:if="$megaDetails.megaType  eq 'SFFIXMEGA' or $megaDetails.megaType  eq 
     'MFFIXMEGA' "
Aggregate the varible in list
#aggregates.sum(commitAllocationResponse.allocatedMegas.![feeDollars])

【讨论】:

我很疑惑,你是不是回答了自己的问题?或者这是问题的一部分? 我回答了我自己的问题。如果任何机构需要帮助,他们可以使用此代码作为示例

以上是关于如何使用 Thymeleaf 设计 HTML 电子邮件正文的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot、JavaMailSender、Thymeleaf 和 Bootstrap:收到的电子邮件是一个纯 HTML 页面

ThymeLeaf 中的条件文本:如何以纯文本形式进行?

如何使用 thymeleaf 作为模板引擎生成 pdf 报告? [关闭]

Spring Boot 使用 Thymeleaf 作为模板发送电子邮件 - 配置不起作用

用于发送电子邮件的 Spring Boot API 和 thymeleaf + bootstrap

Thymeleaf 官方文档中文翻译