8

emailjsを使用してhtml電子メールを送信するnodejsアプリケーションを作成しています。基本的に、メッセージに添付する変数として送信するhtmlを提供します。

多くの文字列連結を使用してこの変数を作成するのではなく、 express / ejsを使用してビューをレンダリングし、その内容を変数に保存したいと思います。

したがって、実行する代わりに:

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

私は次のようなことをしたいと思います:

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

これはできますか?もしそうなら、どのように?!

4

1 に答える 1

15

require直接ejsして、例のように使用します。たとえば、単純化された使用法(キャッシュなし):

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});
于 2012-04-02T02:53:33.040 に答える