0

我需要发送 HTML 格式的电子邮件。似乎 HTML 电子邮件算作“视图”元素,因此使用 JSP 呈现它是有意义的。

但是,emailer 任务将用纯 Java 编写。如何将 JSP 输出转换为 Java?

即我设想:

电子邮件正文.jsp:

<c:out var="invoicebody">
    <lots of html>
    ${invoice.price} etc...
</c:out>

电子邮件发送.java:

setup db connection
setup email
call emailbody.jsp
email.body = invoicebody
email.send etc...

那样的东西...

现在我正在通过 http 服务器抓取它,但这似乎是错误的。

格式化 HTML 电子邮件的最佳方式是什么?使用 Tomcat 7、Servlet 3.0...

谢谢

4

3 回答 3

1

您可以使用MVEL之类的脚本语言来填充要作为电子邮件发送的 HTML 文件。

检查此MVEL 2.0 模板指南

我希望这能让你朝着正确的方向前进。

正如 Szymon Biliński 指出的那样,还有其他选择。在下面列出

于 2013-03-05T11:24:46.883 回答
1

您可以像这样调用自己的 Web 应用程序的 URL:

    public static String getEmailBody(final String triggerId) throws IOException {

        URL url = new URL("http://localhost:8080/emailbody.jsp?triggerId="
                + triggerId);
        URLConnection openConnection = url.openConnection();
        openConnection.setReadTimeout(100);
        InputStream inputStream = openConnection.getInputStream();
        int read;
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        do {
            byte[] bytes = new byte[1024];
            read = inputStream.read(bytes);
            baos.write(bytes);
        } while (read >  0);
        return baos.toString();
    }

这是最超然的方法,因为你有一个“真正的”阅读 httprequest 和 httpresponse。

于 2013-03-06T07:09:29.923 回答
0

已经有一个很好的解决方案,使用标记库进行邮件发送。

只需调用jsp,不需要捕获html。

于 2013-03-05T11:51:09.330 回答