带有动态HTML正文的Java Email

时间:2017-05-26 10:27:36

标签: java javamail

在Java邮件客户端中动态呈现电子邮件模板的最佳方法是什么?任何已经解决这个问题的框架?

2 个答案:

答案 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方法替换此动态contect
template = 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);