我有一个使用nodemailer发送电子邮件的node.js应用程序。它在本地主机上工作正常,但当我从服务器上尝试时,我收不到任何邮件。
由于,应用程序的其他活动工作正常意味着我假设nodemailer在服务器上安装正确.我尝试了两种方式使用主机作为我的服务器和使用gmail作为服务上.这里,是我上次尝试的.这在本地主机上也工作正常.但是,当我把这个放在服务器上时,我没有得到任何响应.
我有nodemailer的配置:
const output = `
<h3>Limit Details</h3>
<p>Admin has added ${limit} quota(s) to ${username}.</p>
`;
// create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
service: 'gmail',
port: 25,
secure: false, // true for 465, false for other ports
auth: {
user: '<gmail>',
pass: '<password>'
}
});
// setup email data with unicode symbols
let mailOptions = {
from: '"Sender" <sender gmail>', // sender address
to: '<receiver gmail>', // list of receivers
subject: 'Quota added information.', // Subject line
html: output // html body
};
// send mail with defined transport object
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));
});
为了测试,我已经控制了messageId和预览URL,那么,从哪里我可以在cpanel中查看此控制台消息?我如何在cpanel中从我的应用程序中查看此类控制台内容??
3条答案
按热度按时间vi4fp9gy1#
不幸的是,据我所知,在cpanel服务器上没有简单的方法来访问node的日志。我通常会设置log4js将日志写入文件:
然后,您可以使用以下命令创建日志:
您还可以使用服务器提供日志文件:
uz75evzq2#
cPanel的应用程序管理器不是很充实。我一直在尝试它,并将其与我习惯的(PM2)进行比较,并将切换回PM2。我确实向cPanel提出了一个功能请求,如果有人有兴趣支持。
否则,答案是使用自定义日志记录器,如@zenott建议的。然而,我更喜欢覆盖console.log,这样如果需要的话,很容易切换回常规的控制台日志记录。
我的解决方案:
xuo3flqw3#
有一种更简单的方法可以访问cPanel服务器上的NodeJS应用日志。而不是使用:
用途:
这将毫无保留地填充cPanel上NodeJS应用根文件夹中的
stderr.log
文件。它甚至可以输出Circular和JSON格式,而无需任何stringify()
。更新:
以上仅在cPanel在CloudLinux上运行时有效(
Setup NodeJS App
可用)。对于其他Distro(只有
Application Manager
可用),只需将以下内容粘贴到主App.js
文件中:然后像往常一样在所有级联模块中使用
console.log()
。这将创建并填充位于NodeJS应用根文件夹中的debug.log
文件。您也可以使用console.trace()
来获取错误的行号。使用终端中的tail -f debug.log
命令进行实时日志记录。