2012-04-02 7 views
7

emailjsを使用してhtml電子メールを送信するnodejsアプリケーションを作成しています。基本的には、メッセージに添付する変数として送信するHTMLを提供します。EJSでHTMLを変数にレンダリングすることができます(電子メールで送信できます)。

多くの文字列連結を使用してこの変数を構築するのではなく、express/ejsを使用してビューをレンダリングし、その内容を変数に保存します。私はのような何かやってみたい

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

を::

ので、代わりのやっ

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

はこれが行われ、そうであれば、どのようにすることができます!

+0

それは可能ですが、あなたは急行で使用しているエンジンを表示しているによって異なります。 Express用に設定したビューエンジンは?それは次のようになります:app.set( 'view engine'、 'your engine here'); –

答えて

11
だけ require EJS直接

と(キャッシュなし)example、例えば単純化用法に従って使用:

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-et-template-into-a-string私ちょうど接続しませんでした: - P – Zugwalt

+0

あなたがこのようにすればあなたが表現するために追加したヘルパーを見ることはできません。 –

+0

かもしれませんが、私はその質問からの要件ではないと思います。 –

関連する問題