尝试将模板 html 插入 node-mailer 但出现错误 "ENOENT: no such file or directory, open"
Try to insert template html to node-mailer but get error "ENOENT: no such file or directory, open"
我使用 node-mailer,它工作正常,现在我尝试添加模板 html 但是当我尝试打开外部 html 文件时总是出错。
这是我的内联旧代码 html,它运行完美!
const sendSwitchBetweenStages = (flowID, flow, stageID, userName) => {
const message = {
to: userEmail(flow, stageID),
subject: titleMessage(stageID),
text: '',
html: `
<div dir="rtl">
<h1> test </h1>
</div>
`
};
return emailerService.sendMail(message);
};
现在我尝试添加一个外部模板:
const sendSwitchBetweenStages = (flowID, flow, stageID, userName) => {
const template = fs.readFileSync('./index.html',{ encoding:'utf-8' });
const message = {
to: userEmail(flow, stageID),
subject: titleMessage(stageID),
text: '',
html: template
};
return emailerService.sendMail(message);
};
错误:Error: Uncaught (in promise): ENOENT: no such file or directory, open 'index.html'
index.html 它在同一个根上,我不知道是什么问题。
尝试给 fs.readFileSync 一个绝对路径而不是相对路径。
举个例子:
fs.readFileSync(path.resolve(__dirname, 'release.hbs')).toString('utf8')
所以你应该尝试或类似的东西:
fs.readFileSync(path.resolve(__dirname, 'index.html'),{ encoding:'utf-8' });
顺便说一句,你应该看看 handlebars。它非常适合创建模板。我在我当前的项目中使用了 nodemailer 和 handelbars 的这种组合。工作得很好。
我使用 node-mailer,它工作正常,现在我尝试添加模板 html 但是当我尝试打开外部 html 文件时总是出错。
这是我的内联旧代码 html,它运行完美!
const sendSwitchBetweenStages = (flowID, flow, stageID, userName) => {
const message = {
to: userEmail(flow, stageID),
subject: titleMessage(stageID),
text: '',
html: `
<div dir="rtl">
<h1> test </h1>
</div>
`
};
return emailerService.sendMail(message);
};
现在我尝试添加一个外部模板:
const sendSwitchBetweenStages = (flowID, flow, stageID, userName) => {
const template = fs.readFileSync('./index.html',{ encoding:'utf-8' });
const message = {
to: userEmail(flow, stageID),
subject: titleMessage(stageID),
text: '',
html: template
};
return emailerService.sendMail(message);
};
错误:Error: Uncaught (in promise): ENOENT: no such file or directory, open 'index.html'
index.html 它在同一个根上,我不知道是什么问题。
尝试给 fs.readFileSync 一个绝对路径而不是相对路径。
举个例子:
fs.readFileSync(path.resolve(__dirname, 'release.hbs')).toString('utf8')
所以你应该尝试或类似的东西:
fs.readFileSync(path.resolve(__dirname, 'index.html'),{ encoding:'utf-8' });
顺便说一句,你应该看看 handlebars。它非常适合创建模板。我在我当前的项目中使用了 nodemailer 和 handelbars 的这种组合。工作得很好。