Я использую java 1.8, java mail 1.5.5 и скорость 1.7.Я реализовал отправку электронной почты успешно без интеграции шаблонов скорости.Но когда я интегрировал Velocity, он не может найти шаблон правильно.Unable to find resource 'templates/email-template.vm'
Фрагмент кода отправителя электронной почты:
public class Utils {
MimeMessage msg = new MimeMessage(session);
msg.addHeader("Content-type", "text/HTML; charset=UTF-8");
msg.addHeader("format", "flowed");
msg.addHeader("Content-Transfer-Encoding", "8bit");
msg.setSubject(subject, "UTF-8");
BodyPart body = new MimeBodyPart();
VelocityEngine ve = new VelocityEngine();
ve.init();
Template t = ve.getTemplate("templates/email-template.vm");
VelocityContext context = new VelocityContext();
context.put("message", message);
StringWriter out = new StringWriter();
t.merge( context, out );
body.setContent(out.toString(),"text/html");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(body);
body = new MimeBodyPart();
multipart.addBodyPart(body);
msg.setContent(multipart,"text/html");
msg.setSentDate(new Date());
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail, false));
Transport.send(msg);
}
Расположение файлов такое же, как на изображении:
Поскольку я реализую API здесь, у меня нет папки webapps для хранения шаблонов.Любая идея, почему это местоположение файла не определяется Velocity?Кроме того, это не сработает, даже если я приведу абсолютный путь к файлу шаблона.
email-template.vm:
<html>
<body style="background-color: #F8F8F8; margin: 0; padding: 0;">
<div style="width: 630px; margin: 0 auto;">
<table style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<tbody>
<tr>
<td height="20" style="background-color:#F8F8F8"></td>
</tr>
<tr>
<td style="background-color: #85929E;font-size: 18px; padding: 10px; border-radius: 5px 5px 0 0; border-bottom: 1px solid #cccccc">
An error occurred while creating entities
</td>
</tr>
<tr>
<td style="padding: 10px; background-color: #ffffff; border: 1px solid #85929E; ">
<p>
$message
</p>
</td>
</tr>
<tr>
<td style="background-color: #85929E; font-size: 12px; text-align: center; padding: 10px; border-radius: 0 0 5px 5px; border-top: 1px solid #cccccc " align="center">
Appitizer Inc
</td>
</tr>
<tr>
<td height="60" style="background-color:#F8F8F8"></td>
</tr>
</tbody>
</table>
</div>
</body>
</html>