在Mail gun和express js中创建动态模板

Jon*_*son 1 node.js express mailgun

有没有办法创建一个 html 文件,它会使用这两个(mailgun 和 expressjs)动态更改此 html 中的变量,例如发送重置密码电子邮件?我是新手,所以我不知道从哪里开始

Shr*_*gie 5

如果您正在考虑动态生成 HTML,您可以尝试使用EJS 之类的东西。有了它,您可以创建一个welcome-email.ejs包含电子邮件的所有 HTML 和一些<%允许您插入变量的特殊标签,如下所示:

<p>Welcome, <%=user.firstName%>!</p>

const ejs = require('ejs')
const mailgun = ...

function sendWelcomeEmail(user) {    
    // arg 1: filepath from root, arg 2: object to pass into EJS template
    ejs.renderFile('server/app/emailTemplates/welcome-email.ejs', {user: user.firstName}, function(err, htmlString) {
        if (err) console.error(err);

        // not sure how mailgun works, but it's probably like this
        let mailOptions = { html: htmlString, to: user.email, ... }

        mailgun.sendMail(mailOptions, (err, info) => {
            if (err) console.error(err);
        });
    });
};
Run Code Online (Sandbox Code Playgroud)