0
MailSerivce.javaの次のsendSportsMailメソッドでパラメータに値を取得できました。電子メールテンプレートの値を解析してjittersterでレンダリングする
@Async
public void sendSportsMail(String name, String email, String message) {
log.debug("Sending feedback email to '{}'", email);
Locale locale = Locale.forLanguageTag("en");
String subject = messageSource.getMessage("email.sports.title", null, locale);
Context context = new Context(locale);
context.setVariable(BASE_URL, jHipsterProperties.getMail().getBaseUrl());
String content = templateEngine.process("sportsEmail", context);
sendNewEmail(email, subject, content, false, true);
}
@Async
public void sendNewEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
log.debug("Send email[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",
isMultipart, isHtml, to, subject, content);
// Prepare message using a Spring helper
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, CharEncoding.UTF_8);
message.setTo(to);
message.setFrom(jHipsterProperties.getMail().getFrom());
message.setSubject(subject);
message.setText(content, isHtml);
javaMailSender.send(mimeMessage);
log.debug("Sent email to User '{}'", to);
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.warn("Email could not be sent to user '{}'", to, e);
} else {
log.warn("Email could not be sent to user '{}': {}", to, e.getMessage());
}
}
}
しかし、name、email、message変数の値をsportsEmail.htmlに解析してレンダリングする方法はわかりません。だから誰もアイデアを与えることができますか? sportsEmail.htmlは以下の通りです。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title th:text="#{email.sports.title}">sports</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="shortcut icon" th:href="@{|${baseUrl}/favicon.ico|}"/>
</head>
<body>
<p th:text="${name}">
</p>
</body>
</html>
ここで$ {name}はnullです。