使用 Html 文件作为 nodejs 中的模板,用于发送带有一些复杂关卡数据的营销电子邮件
Use Html file as template in nodejs for sending emails for marketing with some complex level data
我想在 nodejs 中使用 Html 文件作为模板发送用于营销的电子邮件,其中包含一些复杂级别的数据,例如动态填充它们的图表并显示网格等。我希望它是动态的,就像每个用户的数据都可以变化一样。
最好的方法是什么
我想在服务器端使用数据
如果我对你的问题的理解正确,我认为你应该检查使用 EJS 模板和 express。 EJS 在 html 中嵌入 javascript 以创建动态内容。
查看教程here
您可以使用 email-templates 包。实施起来很容易。如果您使用 nodemailer,您首先需要像这样配置传输变量(使用 mailtrap 的示例):
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
host: 'smtp.mailtrap.io',
port: 465,
secure: false,
auth: {
user: // mailtrap.io username
pass: // mailtrap.io password
}
});
然后您使用包创建电子邮件并使用 documentation 将其与您需要的变量一起发送。例如:
const email = new Email({
transport: transporter,
send: true,
preview: false,
views: {
options: {
extension: 'ejs', //or hbs or whatever template you use
},
root: 'path/to/email/templates',
},
});
email.send({
template: 'hello',
message: {
from: 'Daenerys Targaryen <no-reply@example.com>',
to: 'john@snow.com',
},
locals: {
fname: 'John',
lname: 'Snow',
},
}).then(() => console.log('email has been send!'));
在这种情况下,您将在 email/templates
中有一个名为 hello.ejs
的文件,其中包含变量 fname
和 lname
(在您的情况下,您将使用用户数据)。有关更多示例和案例,请访问 documentation
我想在 nodejs 中使用 Html 文件作为模板发送用于营销的电子邮件,其中包含一些复杂级别的数据,例如动态填充它们的图表并显示网格等。我希望它是动态的,就像每个用户的数据都可以变化一样。 最好的方法是什么 我想在服务器端使用数据
如果我对你的问题的理解正确,我认为你应该检查使用 EJS 模板和 express。 EJS 在 html 中嵌入 javascript 以创建动态内容。
查看教程here
您可以使用 email-templates 包。实施起来很容易。如果您使用 nodemailer,您首先需要像这样配置传输变量(使用 mailtrap 的示例):
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
host: 'smtp.mailtrap.io',
port: 465,
secure: false,
auth: {
user: // mailtrap.io username
pass: // mailtrap.io password
}
});
然后您使用包创建电子邮件并使用 documentation 将其与您需要的变量一起发送。例如:
const email = new Email({
transport: transporter,
send: true,
preview: false,
views: {
options: {
extension: 'ejs', //or hbs or whatever template you use
},
root: 'path/to/email/templates',
},
});
email.send({
template: 'hello',
message: {
from: 'Daenerys Targaryen <no-reply@example.com>',
to: 'john@snow.com',
},
locals: {
fname: 'John',
lname: 'Snow',
},
}).then(() => console.log('email has been send!'));
在这种情况下,您将在 email/templates
中有一个名为 hello.ejs
的文件,其中包含变量 fname
和 lname
(在您的情况下,您将使用用户数据)。有关更多示例和案例,请访问 documentation