在Java邮件客户端中动态呈现电子邮件模板的最佳方法是什么?任何已经解决这个问题的框架?
答案 0 :(得分:1)
有许多框架可用于在服务器端向HTML呈现内容。它应该能够使用它们来生成动态HTML。
然而......
它可能无济于事。正如this Q&A所解释的那样,典型的电子邮件客户端不支持Javascript或CSS。如果电子邮件客户端不支持您希望用于使HTML动态化的机制,那么您在服务器端执行的操作没有任何区别。
另一方面,如果您只想从模板生成 static HTML,那么可以使用一些第三方模板引擎。 This Wikipedia page列出了其中一些内容。
this page描述了一种将JSP呈现为字符串的方法,然后可以将其嵌入到电子邮件中。
答案 1 :(得分:0)
将模板保存在数据库或静态变量中。将动态内容保留在哈希标记中。我们可以考虑将以下简单模板放在变量'模板'
中<html>
<body>
<p> My name is #NAME </p>
</body>
</html>
用string
的replaceFirst方法替换此动态contecttemplate = template.replaceFirst(#NAME, "NIlesh Kemse");
现在发送有此主体的邮件
javax.mail.Message msg=new MimeMessage(session);
MimeBodyPart msgBodyPart = new MimeBodyPart();
msgBodyPart.setContent(template, "text/html");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(msgBodyPart);
msg.setContent(multipart);
Transport.send(msg);