gpt4 book ai didi

java - 加载用于发送电子邮件的 FreeMarker 模板

转载 作者:行者123 更新时间:2023-11-30 11:28:47 24 4
gpt4 key购买 nike

我是 FreeMarker 的新手,我想用它来发送电子邮件。我的应用程序集成了 Spring 3.1、Hibernate 3.0 和 Struts 2 框架。

所以,基本上我发送邮件的代码是(我使用的是 java mail api):

Message message = new MimeMessage(session);

message.setFrom(new InternetAddress(fromAddress));

Address[] addresses = new Address[1];
addresses[0] = new InternetAddress(fromAddress);
message.setReplyTo(addresses);

message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toAddress));
message.setSubject(subject);

//To set template using freemarker

BodyPart bodyPart = new MimeBodyPart();

Configuration cfg = new Configuration();
Template template = cfg.getTemplate("template.ftl");
Map<String, String> rootMap = new HashMap<String, String>();
rootMap.put("toName", toName);
rootMap.put("message", sendMessage);
Writer out = new StringWriter();
template.process(rootMap, out);

bodyPart.setContent(out.toString(), "text/html");

Multipart multipart = new MimeMultipart();
multipart.addBodyPart(bodyPart);

message.setContent(multipart,"text/html; charset=ISO-8859-1");

Transport.send(message);

但是当它试图发送邮件时,它会抛出一个异常:

java.io.FileNotFoundException: Template "template.ftl" not found.

template.ftl 文件在WEB-INF/ftl/ 目录下。

在我的 spring-config.xml 文件中,我添加了这个:

<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/ftl/"/>
</bean>

<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value=""/>
<property name="suffix" value=".ftl"/>
</bean>

最佳答案

添加这条语句

cfg.setClassForTemplateLoading(TestTemplate.class, "templates");

在你的行之前

Template template = cfg.getTemplate("template.ftl"); 

例如,将模板路径添加到您将引用“TestTemplate”的方法的同一文件夹中。

关于java - 加载用于发送电子邮件的 FreeMarker 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18773307/

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