在邮件枪中创建动态模板并表达js

时间:2017-10-12 06:06:47

标签: node.js express mailgun

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

1 个答案:

答案 0 :(得分:3)

如果您正在考虑动态生成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);
        });
    });
};