Java中的电子邮件模板库

6

我知道有一个名为FreeMarker的库可以用于创建Java邮件模板。你认为这个库适合在企业项目中使用吗?还有其他库可以用来创建Java邮件模板吗?


你能推荐一个关于使用Freemarker创建Java邮件模板的教程吗? - tinker_fairy
8个回答

11

Freemarker工作良好,功能非常强大。 Velocity语法更简单,相对不太强大,与null(变量未填充)方面更加宽容。

我都用过,Velocity非常易于入手。尽管实现较为严格,Freemarker在正确性和功能方面提供了更多的支持。


3
我是Pebble模板引擎的作者,我认为这正是你所需要的。

3

是的,确实如此。为了完整起见,还有其他令人信服的库,例如:

  • Apache Velocity
  • String Template

3

几年前,我编写了一款用于发送发票通知的应用程序。我使用Velocity创建电子邮件的实际内容。James提供了传输功能,Apache提供了电子邮件服务器。该应用程序每天发送数万封个性化电子邮件。

Velocity没有给我带来任何问题,但是由于有了FreeMarker的一些经验,现在我可能会选择FreeMarker。


2

仅供参考,您可以使用许多其他模板引擎,不仅仅是用于电子邮件。在我工作的大多数项目中,都使用了Velocity,而在没有使用Velocity的情况下,则使用Freemarker。


1
在我开始进行电子邮件模板设计之前,我想询问我的女朋友,然后我遇到了使用JSP引擎进行模板设计的想法(如果您在servlet环境中)。我觉得这个想法很原创,并且非常适合我的需要,因为我在GAE下添加jar文件是一个非常昂贵的决定(对性能有影响)。
我是如何找到这个链接(原始想法)的https://dev59.com/l3RB5IYBdhLWcg3w9Lzn#458088 所以我放了一个链接来说明如何做Suggestions for Java email templating?。当然,如果有人有和我一样的限制,这将会非常有用。
最好的祝福

1

你可能想要考虑的另一个选项(尽管可能不是)是在Servlet环境中使用JSP。大多数情况下,我不建议这样做,因为需要很多前期工作来设置。

然而,在我们的环境中,这是一个有用的解决方案,因为我们有一群已经熟悉JSP语法和自定义标签的Web开发人员。能够让他们直接处理电子邮件内容而无需学习另一种模板语言(虽然我相信FreeMarker可能并不难学)是非常好的。这种方法还允许我们在电子邮件内容中重复使用一些自定义标签。


0
在企业领域,许多人使用像Sonar或PMD这样的工具来查看代码复杂性。我不知道其中是否有一个支持任何模板库。然而,我在野外审查的模板复杂度水平很高,我真的很想避免在我的代码中出现这种情况。我试图重构其中一些,尽管我取得了一些成功,但结果从未令人满意。几天前,我使用Snippetory将一个2kLoC模板重构为150行模板代码和约1.5kLoC逻辑的新Java类。当然,这仍然需要一些工作来匹配出指标,但现在可以实现可维护的代码。Snippetory模板通过将数据绑定逻辑移出模板提供了很好的关注点分离。作为奖励,模板变得更加可重用。另一方面,逻辑和代码之间的绑定也需要一些代码。最终,代码量并没有太大变化,但可读性大大提高。

对于企业业务,我推荐使用Snippetory。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接