2012-04-02 29 views
7

我在寫一個nodejs應用程序,它將使用emailjs發送html電子郵件。基本上我提供了html作爲附加到消息的變量發送。可以使用EJS Express將HTML呈現給變量(這樣我可以通過電子郵件發送)?

而不是使用大量的字符串連接來構建這個變量,我想使用express/ejs渲染一個視圖並將內容保存到變量中。

所以不是這樣做的:

messageHtml = '<html>'+ .... 
message.attach({data: messageHtml, alternative: true}); 

我想這樣做:

messageHtml = render('emailTemplate.ejs', viewArgs); 
message.attach({data: messageHtml, alternative: true}); 

可以這樣做,如果是這樣,怎麼樣?

+0

這是可能的,但根據其查看你與快遞使用的發動機不同。你有什麼特別的視圖引擎?它看起來像這樣:app.set('view engine','your engine here'); – 2012-04-02 02:19:21

回答

11

只是require EJS直接按了example使用,e.g簡化使用(沒有緩存):

var ejs = require('ejs') 
    , fs = require('fs') 
    , str = fs.readFileSync(__dirname + '/emailTemplate.ejs', 'utf8'); 

var messageHtml = ejs.render(str, viewArgs); 

message.attach({data: messageHtml, alternative: true}); 
+0

啊,是的,謝謝你 - 後見之明,並非常相關的這個問題:http://stackoverflow.com/questions/6590333/how-can-i-turn-an-ejs-template-into-a-string我只是沒有建立連接:-P – Zugwalt 2012-04-02 04:07:17

+0

如果你這樣做,你添加了表達的視圖助手將不起作用。 – 2016-01-05 17:59:25

+0

可能是,但我不認爲這是問題的要求。 – 2016-01-05 18:03:26

相關問題