Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 是否可以使用EJS将HTML呈现为变量(以便我可以通过电子邮件发送)?_Email_Node.js_View_Express_Ejs - Fatal编程技术网

Email 是否可以使用EJS将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,并按照要求使用,例如简化使用(无缓存): 这是可

我正在编写一个nodejs应用程序,它将使用发送html电子邮件。基本上,我提供html作为附加到消息的变量发送

我不想使用大量的字符串连接来构建这个变量,我只想使用渲染视图并将内容保存到变量中

因此,不要这样做:

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});