如何将JSP输出的全部内容作为HTML电子邮件附件通过电子邮件发送

问题描述:

如何将JSP页面输出的全部内容通过电子邮件发送为HTML或PDF电子邮件附件?如何将JSP输出的全部内容作为HTML电子邮件附件通过电子邮件发送

您可以先用javascript获取html源代码。

var source = document.getElementsByTagName('html')[0].innerHTML 

然后你可以在这个源保存在一个隐藏字段,当用户点击提交按钮发送它。如果你想在页面加载时使用ajax发送源代码。

为确保您获得完整的html源代码,请确保在加载页面前获取它。

如果请求是idempotent(如GET请求是),那么只需使用java.net.URL即可获得JSP输出的InputStream。例如。

InputStream input = new URL("http://example.com/context/page.jsp").openStream(); 

如果请求不是幂等(如POST要求是),那么你需要创建一个Filter它与PrintWriter与五种write()方法的自定义实现wrapsServletResponse其中复制输出被覆盖放入会话中存储的某个缓冲区/构建器或本地磁盘文件系统中的临时文件夹,以便后续请求中可以访问它。代码示例可以在here之前发布的答案中找到。

要将它作为电子邮件发送,请使用JavaMail API或更方便的Apache Commons Email。代码示例可以在他们的文档/指南/ FAQ中找到。

如果您想先将HTML转换为PDF,然后看看XhtmlRenderer。代码示例可以找到here