Email 是否可以使用EJS将HTML呈现为变量(以便我可以通过电子邮件发送)?
我正在编写一个nodejs应用程序,它将使用发送html电子邮件。基本上,我提供html作为附加到消息的变量发送 我不想使用大量的字符串连接来构建这个变量,我只想使用渲染视图并将内容保存到变量中 因此,不要这样做:Email 是否可以使用EJS将HTML呈现为变量(以便我可以通过电子邮件发送)?,email,node.js,view,express,ejs,Email,Node.js,View,Express,Ejs,我正在编写一个nodejs应用程序,它将使用发送html电子邮件。基本上,我提供html作为附加到消息的变量发送 我不想使用大量的字符串连接来构建这个变量,我只想使用渲染视图并将内容保存到变量中 因此,不要这样做: messageHtml = '<html>'+ .... message.attach({data: messageHtml, alternative: true}); 这可以做到吗?如果可以,怎么做 只需直接要求ejs,并按照要求使用,例如简化使用(无缓存): 这是可
messageHtml = '<html>'+ ....
message.attach({data: messageHtml, alternative: true});
这可以做到吗?如果可以,怎么做 只需
直接要求
ejs,并按照要求使用,例如简化使用(无缓存):
这是可能的,但根据您在express中使用的视图引擎的不同而有所不同。您为express设置了什么视图引擎?它看起来像:app.set('view engine','your engine here');啊,是的,谢谢你——事后看来很明显,与这个问题非常相关:我只是没有建立联系:-如果你这样做,你添加到express中的PView帮助程序将不起作用。可能是,但我不认为这是问题的要求。@DavidMurdoch你有建议的解决方案让视图帮助程序起作用吗?
messageHtml = render('emailTemplate.ejs', viewArgs);
message.attach({data: messageHtml, alternative: true});
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});