Я пытался получить базовую комбинацию 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: '[email protected]',
to: '[email protected]',
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.
- Ручное редактирование номеров портов в приведенном выше коде.
- Включение и выключение безопасного режима в приведенном выше коде.
- Добавление исключений брандмауэра Защитника Windows для портов 587, 465, а также пары других просто для развлечения, чтобы посмотреть, будут ли они работать.
- Полное отключение брандмауэра Защитника Windows.
- Запуск кода на других компьютерах в моей домашней сети.
- Проверка netstat -an, чтобы увидеть, указаны ли в списке порты 587 или 465. Это не так, но этот порт открыт постоянно или только при необходимости? Может ли это быть проблемой?
У кого-нибудь есть идеи о том, что здесь может происходить? Я просто нормальный парень, использующий домашнее подключение к Интернету, чтобы написать небольшую программу, которая будет отправлять себе оповещения по электронной почте один раз в день. Может ли мой интернет-провайдер блокировать это или что-то в этом роде?
РЕДАКТИРОВАТЬ - Добавление пары новых вещей, которые я пробовал, но которые не сработали:
- Транспортный вариант ignoreTLS: true / false (пробовал оба)
- Транспортный параметр requireTLS: true / false (пробовал оба)
requireTLS: true
на транспорте? - person Mike Gerard   schedule 10.11.2020