freemarker在邮件发送中使用

本文详细介绍了如何使用Freemarker进行邮件模板的创建和配置,包括准备需要填充值的模板、导入Freemarker库、将模板放置于web工程的web-INF/ftl目录并更改后缀为ftl,以及配置FreeMarkerConfigurer来指定模板位置和解决乱码问题。在发送邮件时,通过将模板转换为字符串,实现了动态内容的邮件发送。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:准备模板(需要填充的值 : ${值名})
第二步:导入freemarker包
第三步:把模板放到web工程的webinf目录下 并且后缀名改成ftl格式 把html文件改成ftl文件
第四步:配置模板配置 FreeMarkerConfigurer
功能:找到模板的位置
解决乱码问题
//设置模板位置
configurer.setTemplateLoaderPath("/WEB-INF/ftl/");
//设置编码级
configurer.setDefaultEncoding(“utf-8”);

	 @Bean
    public FreeMarkerConfigurer freeMarkerConfigurer(){
        FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer();
        //设置模板位置
        freeMarkerConfigurer.setTemplateLoaderPath("/WEB-INF/ftl");
        freeMarkerConfigurer.setDefaultEncoding("utf-8");
        return freeMarkerConfigurer;
    }

当我们发送邮件时,需要在setText里放入String的字符串,那么,我们需要先把模板放到一个不用指定写出路径的流中(如果指定,那么就把文件写出到本地了)StringWrite

@Component
public class TemplateUtils {
    @Autowired
    private FreeMarkerConfigurer freeMarkerConfigurer;

    public  String getTemplateStr(String templateName, Map<String, String> map){
        try {
            Template template = freeMarkerConfigurer.getConfiguration().getTemplate(templateName, "utf-8");
            StringWriter stringWriter = new StringWriter();
            template.process(map,stringWriter);//填装数据hashMap,写出流
            stringWriter.flush();
            String s = stringWriter.toString();//把流转换为字符串满足邮件serText
            stringWriter.close();
            return s;
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TemplateException e) {
            e.printStackTrace();
        }
        return "空";
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值