使用 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 的文件,其中包含变量 fnamelname(在您的情况下,您将使用用户数据)。有关更多示例和案例,请访问 documentation