2013-04-03 57 views
1

我已经使用Freemarker创建了一个模板,我将用它作为电子邮件发送。 这是我希望在模板中包含的参数的片段。 Iam using java ..如何在Liferay中将电子邮件模板作为电子邮件传递给Freemarker?

// use freemarker Configuration config = new Configuration(); (newClassTemplateLoader(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发送电子邮件如下 发送邮件时应如何通过模板作为参数?

+0

您的Freemarker模板在哪里?另外,我无法想象,将参数存储在列表中而不是地图存在问题。 – Perception

+0

我已编辑我的帖子。 pl检查 –

回答

1

你写System.out

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

你可以写为String:

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

或任何其他作家传递给process()方法。

+0

谢谢纳撒尼尔。我已经接受你的答案。有效.. :) –