1

電子メールとして送信するために使用するテンプレートを作成するために Freemarker を使用しました。テンプレートに含めたいパラメータのスニペットを次に示します。私はJavaを使用しています..

// freemarker 構成を使用 config = new Configuration(); config.setTemplateLoader(new ClassTemplateLoader(getClass(), "/"));

        Template template = config.getTemplate("helloworld.ftl");

        // Build the data-model
        Map<String, Object> data = new HashMap<String, Object>();
        data.put("message", "Hello!! You have got a new approval mail!");

        //List parsing 
        List<String> mailDetails = new ArrayList<String>();
        mailDetails.add(fromAddress);
        mailDetails.add(fromName);
        mailDetails.add(toAddress);
        mailDetails.add(toName);
        mailDetails.add(subject);
        mailDetails.add(body);

        data.put("mailDetails", mailDetails);


        // Console output
        Writer out = new OutputStreamWriter(System.out);
        template.process(data, out);
        out.flush();

これはテストされており、指定されたフォルダーにテンプレートが正常に作成されました。私が知りたいのは、メールの送信中にパラメーターとして生成されたテンプレートを渡す方法だけです。

Liferay で次のようにメールを送信しています メール送信中にテンプレートをパラメーターとして渡すにはどうすればよいですか?

4

1 に答える 1

1

あなたが書いているのはSystem.out

    // Console output
    Writer out = new OutputStreamWriter(System.out);
    template.process(data, out);
    out.flush();

文字列に書き込むことができます:

    StringWriter out = new StringWriter();
    template.process(data, out);
    String finishedMessage = out.toString();

または他のライターをprocess()メソッドに渡します。

于 2013-04-03T04:46:43.130 に答える