Nodemailer 找不到 txt 文件
Nodemailer cant find txt file
我一直在这里寻找答案,但到目前为止没有任何效果。
基本上我有一个 txt 文件,我想使用 Nodemailer 发送它,就是这样。
但我不断收到此错误:
错误:ENOENT:没有那个文件或目录,打开 'data.txt'
该文件存在并且直接与负责发送它的 .js 文件相同,因此路径正确。
我已经检查了我的 .json 文件,我应该需要的所有包都存在。
这一切都在本地工作,所以我很难理解哪里出了问题。
代码如下:
let nodemailer = require('nodemailer');
let transporter = nodemailer.createTransport({
service: 'outlook',
auth:{
user: 'myEmail',
pass: process.env.MAIL_PASS
}
});
data.map(coin => {
if(coin.symbol !== 'BNB'){
top80.push(coin.symbol.toUpperCase());
cleanedOrders[coin.symbol.toUpperCase()] = [];
}
})
let mailoptions = {
from: 'senderEmail',
to: 'toEmail',
subject: 'Report',
text: 'Find this months report attached.',
attachments: [
{
filename: 'report.txt',
path: 'data.txt'
}
]
}
function getCoinData(numberOfCoins) {
//should be < -1
if (numberOfCoins > -1) {
//console.log('All coin orders captured');
//email results
transporter.sendMail(mailoptions, (err, info) => {
if(err){
console.log(err);
res.json(`error compiling report: ${err}`);
} else {
res.json(`Report sent.`);
}
});
}
}
由于您提供了相对路径,因此 nodemailer
将建立一条 relative
到 process.cwd
的路径。 process.cwd()
是程序的工作目录或想想你的 main.js
文件的位置,你在其中启动程序的文件夹!
假设您有以下文件夹结构:
main.js
-email
--email.js
--data.txt
如果您使用 main.js
启动程序,即使调用文件 email.js
,process.cwd()
参数也将始终是 main.js
所在的文件夹。
选项 1
- 将
data.txt
移动到根文件夹(与 main.js
所在的文件夹相同。)它会找到它。
选项 2
- 提供
nodemailer
的绝对路径,最好使用全局 __dirname
var { join } = requiure('path')
let mailoptions = {
from: 'senderEmail',
to: 'toEmail',
subject: 'Report',
text: 'Find this months report attached.',
attachments: [
{
filename: 'report.txt',
// __dirname is equal to the directory the file is located in!.
path: join(__dirname, 'data.txt')
}
]
}
我一直在这里寻找答案,但到目前为止没有任何效果。 基本上我有一个 txt 文件,我想使用 Nodemailer 发送它,就是这样。 但我不断收到此错误: 错误:ENOENT:没有那个文件或目录,打开 'data.txt' 该文件存在并且直接与负责发送它的 .js 文件相同,因此路径正确。 我已经检查了我的 .json 文件,我应该需要的所有包都存在。 这一切都在本地工作,所以我很难理解哪里出了问题。
代码如下:
let nodemailer = require('nodemailer');
let transporter = nodemailer.createTransport({
service: 'outlook',
auth:{
user: 'myEmail',
pass: process.env.MAIL_PASS
}
});
data.map(coin => {
if(coin.symbol !== 'BNB'){
top80.push(coin.symbol.toUpperCase());
cleanedOrders[coin.symbol.toUpperCase()] = [];
}
})
let mailoptions = {
from: 'senderEmail',
to: 'toEmail',
subject: 'Report',
text: 'Find this months report attached.',
attachments: [
{
filename: 'report.txt',
path: 'data.txt'
}
]
}
function getCoinData(numberOfCoins) {
//should be < -1
if (numberOfCoins > -1) {
//console.log('All coin orders captured');
//email results
transporter.sendMail(mailoptions, (err, info) => {
if(err){
console.log(err);
res.json(`error compiling report: ${err}`);
} else {
res.json(`Report sent.`);
}
});
}
}
由于您提供了相对路径,因此 nodemailer
将建立一条 relative
到 process.cwd
的路径。 process.cwd()
是程序的工作目录或想想你的 main.js
文件的位置,你在其中启动程序的文件夹!
假设您有以下文件夹结构:
main.js
-email
--email.js
--data.txt
如果您使用 main.js
启动程序,即使调用文件 email.js
,process.cwd()
参数也将始终是 main.js
所在的文件夹。
选项 1
- 将
data.txt
移动到根文件夹(与main.js
所在的文件夹相同。)它会找到它。
选项 2
- 提供
nodemailer
的绝对路径,最好使用全局__dirname
var { join } = requiure('path')
let mailoptions = {
from: 'senderEmail',
to: 'toEmail',
subject: 'Report',
text: 'Find this months report attached.',
attachments: [
{
filename: 'report.txt',
// __dirname is equal to the directory the file is located in!.
path: join(__dirname, 'data.txt')
}
]
}