我有一个HTML模板,可用于发送到新的网站注册。这是一个简单的html文件,我想将其加载到变量中,以便在使用nodemailer(例如[FIRST_NAME])发送之前,可以替换某些部分。我试图避免不得不将大量的html粘贴到我的导出功能中。关于如何去做的任何想法?
对于更清晰的想法,我需要知道的是如何实际执行此操作:
var first_name = 'Bob';
var html = loadfile('abc.html').replace('[FIRST_NAME]', first_name);
这是使用ejs的示例,但是您可以使用任何模板引擎:
var nodemailer = require("nodemailer");
var ejs = require('ejs');
var transport = nodemailer.createTransport("SMTP", {
service: <your mail service>,
auth: {
user: <user>,
pass: <password>
}
});
function sendMail(cb) {
var user = {firstName : 'John', lastName: 'Doe'};
var subject = ejs.render('Hello <%= firstName %>', user);
var text = ejs.render('Hello, <%= firstName %> <%= lastName %>!', user);
var options = {
from: <from>,
replyTo: <replyto>,
to: <to>,
subject: subject,
text: text
};
transport.sendMail(options, cb);
}
要加载模板文件,只需使用fs
模块。当文件以utf-8编码时,以下是同步操作的方法:
var fs = require('fs');
var template = fs.readFileSync('abc.html',{encoding:'utf-8'});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句