我有一个html模板,我们用它来发送到新的网站注册.这是一个简单的html文件,我想加载到变量中,以便在使用nodemailer(例如[FIRST_NAME])发送之前我可以替换某些部分.我试图避免将大量的html粘贴到我的导出函数中.关于如何做到这一点的任何想法?
为了更清晰的想法,我需要知道的是如何实际执行此操作:
var first_name = 'Bob';
var html = loadfile('abc.html').replace('[FIRST_NAME]', first_name);
Run Code Online (Sandbox Code Playgroud)
sou*_*eck 10
这是一个如何使用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);
}
Run Code Online (Sandbox Code Playgroud)
要加载模板文件,请使用fs模块.以utf-8编码文件时,如何同步执行此操作:
var fs = require('fs');
var template = fs.readFileSync('abc.html',{encoding:'utf-8'});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11150 次 |
| 最近记录: |