我在Nginx ubuntu服务器上运行一个小节点应用程序。我设法通过提供所有静态文件来使网站正常运行。 (花了我一段时间才找出答案)。
但是现在我想运行一个cron作业来发送电子邮件。在这封电子邮件中,我使用“ fs”加载了一个简单的html模板。当我运行cron作业时,它给了我错误:
错误:ENOENT:没有此类文件或目录,请打开'email.html'
我认为这又是由于找不到静态文件而又不知道如何解决它。因为我不使用express运行此脚本。我的script.js看起来像这样:
i = 0
Do Until i = 999
i = i + 1
If IsEmpty(Cells(i, 1)) = True Then
Cells(i, 1).Value = "Text..."
End If
Loop
script.js和email.html位于同一根文件夹中
我的nginx文件如下:
'use strict';
const nodemailer = require('nodemailer');
var ejs = require("ejs");
var fs = require("fs");
var Handlebars = require('handlebars');
var source = fs.readFileSync('email.html','utf8');
var template = Handlebars.compile(source);
var result = template(user);
var mailOptions = {
from: '"Me, <me@gmail.com>', // sender address
to: "user@user.com", // list of receivers
subject: 'subject', // Subject line
html: result
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message sent: %s', info.messageId);
console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
process.exit()
});
答案 0 :(得分:2)
var html = fs.readFileSync('./path/email.html', 'utf8');