近日,因项目需要,需要实现邮件定制功能。
以前接触过velocity,freemarker,不过都是很久以前的事了。
今日记录下来,作为备份,以免忘记。
在网上有很多不错的文章,用于直接使用spring+velocity实现邮件定制发送的功能。
例如:gundumw100的
spring+velocity+javamail发送模板邮件
XIXITIE的
由于以前系统实现了邮件发送功能,我这里只提供邮件模板的定制功能。
本人的想法:在数据库保存模板内容,将模板文件保存至本地。 获取内容时读取本地模板文件内容。
我采取的是Velocity模板引擎,用户创建模板时还需遵守它的规则。比如说${username} 类型${} 的作为参数。在后台我使用正则,分别识别参数。
String fileContent = "${username}你好,您的邮箱是${email}";
Pattern pattern = Pattern.compile("\\$\\{(.*?)\\}");
Matcher m = pattern.matcher(fileContent);
List<String> keys = new ArrayList<String>();
while (m.find()) {
keys.add(m.group(1));
}
当然fileContent是从vm模板文件里面取出来的内容。
由于时间紧凑,先记录到这。
提供附件以供参考。代码我稍作了调整,不可以直接使用。