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 回答