我正在尝试在文件流中填充html数据,以便我可以使用smtpTransport将它发送到电子邮件中。我试图使用ejs,但几乎我看到的每个示例都使用ejs.render来显示内容,而我试图以字符串形式进一步发送它。我想手动执行此操作而不是使用邮件黑猩猩之类的东西,但我还没有发现任何有用的东西。对于上下文,我试图创建收据电子邮件,当用户购买的东西和项目填充表。下面是我一直在试图与EJS使用,但得到的代码“类型错误:this.templateText.replace是不是一个错误的功能”:如何动态填充节点中的html数据以便发布,不显示?
router.post('/placeorder', function(req, res) {
var orderInfo = req.body;
var delivery = orderInfo.deliveryDate.split("00:00:00")[0] + " from " + orderInfo.deliveryTime;
//Email buyer receipt
fs.readFile('buyer_receipt.html',function (err, data){
if (err) {
console.log(err);
} else {
var renderedHtml = ejs.render(data, {cart: orderInfo.cart, subtotal: orderInfo.subtotal, fee: orderInfo.fee, total: orderInfo.total, deliveryInfo: delivery});
smtpTransport.sendMail({
from: "Test <[email protected]>",
to: orderInfo.user.user.ownerName + " <" + orderInfo.user.user.email +">",
subject: "Thanks for your order!",
html: renderedHtml
}, function(error, response){
if(error) {
console.log(error);
} else {
console.log("Mail sent: " + response.message);
}
});
}
});
我愿意使用EJS外的不同平台好。
这里是用玉又名哈巴狗一个例子http://stackoverflow.com/questions/ 21654051 /如何待送-AN-HTML的页面作为电子邮件功能于的NodeJS/21654249#21654249 – Ryan