2013-04-03 54 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

謝謝納撒尼爾。我已經接受你的答案。有效.. :) –