NodeMailer从数据库中用模板发送HTML邮件。

问题描述 投票:0回答:1

在我的应用中,我已经设置了nodemailer来发送邮件,这个应用是用Vue和Firebase构建的。这个应用是用Vue和Firebase构建的,我需要从UI中修改邮件模板,所以它们是以HTML格式保存在数据库中的,在这些模板中我需要能够使用动态值。

这就是创建邮件的方法。

 const mailOptions = {
     from: "Test",
     to: req.body.email,
     subject: "New email from" + " " + req.body.email,
     html: req.body.arenile.email_template
  };

内容是 req.body.arenile.email_template 在FireStore中是。

<p>Date: ${req.body.reservation_date} </p><p>Email: ${req.body.email}</p>

问题是变量没有被评估,也没有在邮件中打印出来。

我试过了。

html: ` ${req.body.arenile.email_template}`

但它并不能解决这个问题。

如果我使用:

html: `<p>Date: ${req.body.reservation_date} </p><p>Email: ${req.body.email}</p>`

它就能正常工作。${req.body.email} 被打印成 [email protected]

但。

html: ` ${req.body.arenile.email_template}`

并没有。${req.body.email} 被打印成 ${req.body.email}

我不知道是我需要用不同的方式转义HTML,还是请求数据被评估在错误的地方。

我该如何解决这个问题?

javascript nodemailer
1个回答
0
投票

我是这样解决的。

var html = req.body.arenile.email_template;
html = html.replace('{{email}}', req.body.email);
html: html

然后使用 {{email}} 将打印相关值。

© www.soinside.com 2019 - 2024. All rights reserved.