node.js - 如何将html页面作为nodemailer的内容发送
问题描述
在我的应用程序中,我使用 nodemailer 发送电子邮件。我想向收件人发送 html 页面内容(有一些信息)
怎么做?请任何人帮助我
解决方案
您可以做的是使用节点中的 fs 模块读取 HTML 文件,然后使用把手替换 HTML 字符串中要更改的元素
var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');
var handlebars = require('handlebars');
var fs = require('fs');
var readHTMLFile = (path, callback) => {
fs.readFile(path, { encoding: 'utf-8' }, function (err, html) {
if (err) {
throw err;
}
else {
return callback(null, html);
}
});
};
smtpTransport = nodemailer.createTransport(smtpTransport({
host: mailConfig.host,
secure: mailConfig.secure,
port: mailConfig.port,
auth: {
user: mailConfig.auth.user,
pass: mailConfig.auth.pass
}
}));
readHTMLFile(__dirname + 'app/public/pages/emailWithPDF.html', function (err, html) {
var template = handlebars.compile(html);
var replacements = {
username: "John Doe"
};
var htmlToSend = template(replacements);
var mailOptions = {
from: 'my@email.com',
to : 'some@email.com',
subject : 'test subject',
html : htmlToSend
};
smtpTransport.sendMail(mailOptions, (error, response)=> {
if (error) {
console.log(error);
callback(error);
}
});
});
推荐阅读
- php - PHP 的 fgetcsv 给出了格式错误的数组
- python - 如何使用 OpenCV 在路边画一条线?
- windows - 无效的格式。错误的参数在带有 curl 的 windows cmd 中传递错误
- swift - 如何将按钮内的图像替换为要显示的文本/标题而不是图像?
- c++ - 如何在具有循环依赖的类中进行动态转换?
- react-native - 在模拟器上反应本机 TextInput 值不更新
- c# - C# WCF - 预加载 HTTP 程序集
- python - Colab 中的 Selenium webdriver 未启动 Chrome 浏览器
- python-3.x - Python 3 和 Slack 客户端:ssl.SSLCertVerificationError
- routing - 使用外部 IP 加强路由内部服务器