2012-04-02 10 views
7

emailjs kullanarak html e-postası gönderecek bir nodejs uygulaması yazıyorum. Temel olarak, mesaja eklediğim bir değişken olarak göndermek için html'yi sağlarım.EJS ile HTML'yi bir değişkene gönderebilir (böylece e-posta olarak gönderebilirim)?

Çok sayıda dize birleştirme kullanarak bu değişkeni oluşturmak yerine, express/ejs kullanarak bir görünüm oluşturmak ve içeriği değişkene kaydetmek istiyorum.

Yani yerine yapıyor:

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

ben böyle bir şey yapmak istiyorum: eğer öyleyse bu yapılabilir ve alınabilir

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

, nasıl ?!

+0

mümkün, ancak ekspres birlikte kullandığınız motoru görüntülemek hangi bağlı olarak değişir. Ekspres için hangi görüntü motorunu ayarladınız? Şuna benzer: app.set ('motoru görüntüle', 'motorunuz'); –

cevap

11

Sadece require ejs doğrudan ve example göre kullanın (önbelleğe alma olmadan) örneğin basitleştirilmiş kullanım:

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

Ah evet teşekkürler - arka planda çok açık ve bu soruyla çok ilgili: http://stackoverflow.com/questions/6590333/how-can-i-turn-an-ejs-template-into-a-string I sadece bağlantıyı yapmadı: -P – Zugwalt

+0

Eksprese eklediğiniz yardımcıları görüntüle, bu şekilde yaparsanız çalışmaz. –

+0

Olabilir, ama bunun bir gereklilik olduğunu düşünmüyorum. –