在尝试为电子邮件呈现jsp模板时,我只能正确显示html,jsp标签就像它一样..
StringWriter writer = new StringWriter();
IOUtils.copy(new FileInputStream(new File(emailTemplateJSP)), writer);
message.setSubject("This is the Subject Line!");
message.setContent(writer.toString(), "text/html;charset=utf-8");
Transport transport = session.getTransport("smtp");]
这里,只有" emailTemplateJSP"的html部分。显示在收件箱中。还在挠我的头..
答案 0 :(得分:0)
您好像通过电子邮件直接通过代码发送文件,并查看电子邮件客户端收件箱中的电子邮件。
为了正确解析.jsp文件,它必须由Tomcat,Glassfish,WebLogic等servlet引擎处理......
.jsp文件由servlet引擎处理,然后在视图中呈现正确的HTML以显示在浏览器或电子邮件客户端收件箱中
因此,在这种情况下,您的代码需要在servlet引擎中运行,并且在通过电子邮件发送生成的HTML文件之前处理您的视图文件(.jsp)并生成HTML。
答案 1 :(得分:0)
您现在所做的是,您将文件作为字节流读取,并且不要让servlet容器将jsp标记转换为html。您需要创建对所需页面的调用,然后像现在一样复制它的字节。
如果jsp需要参数,最好使用工具而不是直接读取文件。
下面是一个关于一个名为apache HttpClient(jakarta commons项目的一部分)的优秀工具的教程的链接。它非常简单,可以省去插座处理的麻烦。