gpt4 book ai didi

spring - 如何使用 Thymeleaf 处理 TEXT 电子邮件模板?

转载 作者:行者123 更新时间:2023-12-04 05:46:24 26 4
gpt4 key购买 nike

我正在尝试发送 plain text来自带有 Thymeleaf 的 Spring 应用程序的电子邮件。

这是我的电子邮件服务:

@Override
public void sendPasswordToken(Token token) throws ServiceException {
Assert.notNull(token);

try {

Locale locale = Locale.getDefault();

final Context ctx = new Context(locale);
ctx.setVariable("url", url(token));

// Prepare message using a Spring helper
final MimeMessage mimeMessage = mailSender.createMimeMessage();

final MimeMessageHelper message = new MimeMessageHelper(
mimeMessage, false, SpringMailConfig.EMAIL_TEMPLATE_ENCODING
);

message.setSubject("Token");
message.setTo(token.getUser().getUsername());

final String content = this.textTemplateEngine.process("text/token", ctx);
message.setText(content, false);

mailSender.send(mimeMessage);

} catch (Exception e) {
throw new ServiceException("Token has not been sent", e);
}
}

电子邮件被发送并投递到邮箱。

这是我的 plain text电子邮件模板:

Token url: ${url}



但在投递邮箱 url变量不会被替换为它的值。为什么?

当我使用 html经典的 HTML Thymeleaf 语法​​,变量被替换:
<span th:text="${url}"></span>

电子邮件文本模板的正确语法是什么?

最佳答案

您也可以在纯文本模式下使用 Thymeleaf,如下例所示:

Dear [(${customer.name})],

This is the list of our products:
[# th:each="p : ${products}"]
- [(${p.name})]. Price: [(${#numbers.formatdecimal(p.price,1,2)})] EUR/kg
[/]
Thanks,
The Thymeleaf Shop

这意味着您可以拥有一个仅包含以下内容的文本文件:
Token url: [(${url})]

在此处查看这些功能的完整文档:

https://github.com/thymeleaf/thymeleaf/issues/395

编辑

如评论中所述,请确保使用 Thymeleaf 的 >= 3.0 版本:
<properties>
<thymeleaf.version>3.0.3.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.1.2</thymeleaf-layout-dialect.version>
</properties>

关于spring - 如何使用 Thymeleaf 处理 TEXT 电子邮件模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41599954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com