0

HTML 形式のメールを送信する必要があります。HTML 電子メールは「ビュー」要素としてカウントされるように見えるため、JSP を使用してレンダリングすることは理にかなっています。

ただし、emailer タスクは純粋な Java で記述されます。JSP 出力を Java に取得するにはどうすればよいですか?

つまり、私は想像しています:

メール本文.jsp:

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

emailend.java:

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

そんな感じ...

現在、httpサーバーを介してスクレイピングしていますが、それは間違っているようです。

HTML メールをフォーマットする最良の方法は何ですか? Tomcat 7、サーブレット 3.0 を使用しています...

ありがとう

4

3 に答える 3

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 に答える
1

MVELなどのスクリプト言語を使用して、電子メールとして送信する HTML ファイルを作成できます。

このMVEL 2.0 テンプレート ガイドを確認してください

これがあなたを正しい方向に導くことを願っています。

Szymon Biliński が指摘したように、他の選択肢もあります。以下にそれらをリストします。

于 2013-03-05T11:24:46.883 に答える
0

メール送信にtaglibsを使用する良い解決策はすでにあります。

jspを呼び出すだけで、HTMLをキャプチャする必要はありません。

于 2013-03-05T11:51:09.330 に答える