连接 ECONNREFUSED 127.0.0.1:587 (nodemailer + mailtrap)
connect ECONNREFUSED 127.0.0.1:587 (nodemailer + mailtrap)
一直在努力搞定nodemailer的基本组合,使用mailtrap.io账号工作,三划线。
这是我的 app.js:
const nodemailer = require('nodemailer');
let transport = nodemailer.createTransport({
host: "smtp.mailtrap.io",
port: 2525,
// secure: true,
auth: {
user: "myusername",
pass: "mypassword"
},
debug: true,
logger: true
});
let scrapeEmailMessage = {
//from: 'myemail@gmail.com',
to: 'myemail@gmail.com',
subject: 'Hello World',
text: 'hello world'
};
let mailTransporter = nodemailer.createTransport(transport);
mailTransporter.sendMail(scrapeEmailMessage, function(err, data) {
if(err) {
console.log(err);
} else {
console.log('Email sent successfully');
}
});
这是我得到的错误输出:
[2020-11-10 14:32:20] DEBUG Creating transport: nodemailer (6.4.15; +https://nodemailer.com/; SMTP/6.4.15[client:6.4.15])
[2020-11-10 14:32:20] DEBUG Creating transport: nodemailer (6.4.15; +https://nodemailer.com/; SMTP/6.4.15[client:6.4.15])
[2020-11-10 14:32:20] DEBUG Sending mail using SMTP/6.4.15[client:6.4.15]
[2020-11-10 14:32:20] DEBUG [YlvPyvxQxE] Resolved localhost as 127.0.0.1 [cache miss]
[2020-11-10 14:32:22] ERROR [YlvPyvxQxE] connect ECONNREFUSED 127.0.0.1:587
[2020-11-10 14:32:22] DEBUG [YlvPyvxQxE] Closing connection to the server using "destroy"
[2020-11-10 14:32:22] ERROR Send Error: connect ECONNREFUSED 127.0.0.1:587
Error: connect ECONNREFUSED 127.0.0.1:587
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1129:14) {
errno: 'ECONNREFUSED',
code: 'ESOCKET',
syscall: 'connect',
address: '127.0.0.1',
port: 587,
command: 'CONN'
}
我尝试了很多方法来修复它,但不断收到同样的错误消息:
- 在 Gmail 中打开“安全性较低的应用程序”选项并使用上述代码尝试连接到 smtp.gmail.com。
- 手动编辑上面代码中的端口号。
- 在上面的代码中打开和关闭安全模式。
- 在端口 587、465 以及其他几个端口上添加 Windows Defender Firewall 例外,只是为了好玩,看看它们是否有效。
- 完全禁用 Windows Defender 防火墙。
- 运行 我家庭网络中其他计算机上的代码。
- 正在检查“netstat -an”以查看是否列出了端口 587 或 465。他们不是,但这个端口是一直打开还是只在需要时打开?这可能是问题所在吗?
有人知道这里会发生什么吗?我只是一个普通人,使用他的家庭互联网连接编写一个小程序,每天给自己发送一次电子邮件提醒。我的 ISP 会阻止这个或什么吗?
编辑 - 添加一些我试过但没有用的新东西:
- 传输选项“ignoreTLS: true/false”(两种都试过了)
- 传输选项“requireTLS: true/false”(两种都试过了)
您正在创建两个运输车。
而不是这个:
let mailTransporter = nodemailer.createTransport(transport);
和
mailTransporter.sendMail()
这样做:
transport.sendMail()
修改;
让运输 = nodemailer.createTransport({
成为;
让运输= {
并删除右括号; }); 为 };
我收到此错误,这是因为我使用的是端口 25 而不是端口 2525。它说 25 是一个选项,但似乎对我不起作用。
一直在努力搞定nodemailer的基本组合,使用mailtrap.io账号工作,三划线。
这是我的 app.js:
const nodemailer = require('nodemailer');
let transport = nodemailer.createTransport({
host: "smtp.mailtrap.io",
port: 2525,
// secure: true,
auth: {
user: "myusername",
pass: "mypassword"
},
debug: true,
logger: true
});
let scrapeEmailMessage = {
//from: 'myemail@gmail.com',
to: 'myemail@gmail.com',
subject: 'Hello World',
text: 'hello world'
};
let mailTransporter = nodemailer.createTransport(transport);
mailTransporter.sendMail(scrapeEmailMessage, function(err, data) {
if(err) {
console.log(err);
} else {
console.log('Email sent successfully');
}
});
这是我得到的错误输出:
[2020-11-10 14:32:20] DEBUG Creating transport: nodemailer (6.4.15; +https://nodemailer.com/; SMTP/6.4.15[client:6.4.15])
[2020-11-10 14:32:20] DEBUG Creating transport: nodemailer (6.4.15; +https://nodemailer.com/; SMTP/6.4.15[client:6.4.15])
[2020-11-10 14:32:20] DEBUG Sending mail using SMTP/6.4.15[client:6.4.15]
[2020-11-10 14:32:20] DEBUG [YlvPyvxQxE] Resolved localhost as 127.0.0.1 [cache miss]
[2020-11-10 14:32:22] ERROR [YlvPyvxQxE] connect ECONNREFUSED 127.0.0.1:587
[2020-11-10 14:32:22] DEBUG [YlvPyvxQxE] Closing connection to the server using "destroy"
[2020-11-10 14:32:22] ERROR Send Error: connect ECONNREFUSED 127.0.0.1:587
Error: connect ECONNREFUSED 127.0.0.1:587
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1129:14) {
errno: 'ECONNREFUSED',
code: 'ESOCKET',
syscall: 'connect',
address: '127.0.0.1',
port: 587,
command: 'CONN'
}
我尝试了很多方法来修复它,但不断收到同样的错误消息:
- 在 Gmail 中打开“安全性较低的应用程序”选项并使用上述代码尝试连接到 smtp.gmail.com。
- 手动编辑上面代码中的端口号。
- 在上面的代码中打开和关闭安全模式。
- 在端口 587、465 以及其他几个端口上添加 Windows Defender Firewall 例外,只是为了好玩,看看它们是否有效。
- 完全禁用 Windows Defender 防火墙。
- 运行 我家庭网络中其他计算机上的代码。
- 正在检查“netstat -an”以查看是否列出了端口 587 或 465。他们不是,但这个端口是一直打开还是只在需要时打开?这可能是问题所在吗?
有人知道这里会发生什么吗?我只是一个普通人,使用他的家庭互联网连接编写一个小程序,每天给自己发送一次电子邮件提醒。我的 ISP 会阻止这个或什么吗?
编辑 - 添加一些我试过但没有用的新东西:
- 传输选项“ignoreTLS: true/false”(两种都试过了)
- 传输选项“requireTLS: true/false”(两种都试过了)
您正在创建两个运输车。
而不是这个:
let mailTransporter = nodemailer.createTransport(transport);
和
mailTransporter.sendMail()
这样做:
transport.sendMail()
修改; 让运输 = nodemailer.createTransport({
成为; 让运输= {
并删除右括号; }); 为 };
我收到此错误,这是因为我使用的是端口 25 而不是端口 2525。它说 25 是一个选项,但似乎对我不起作用。