Я получаю сообщение об ошибке NodeMailer при попытке подключиться к SMTP-серверу NodeMailer (который находится на той же машине):
error: { Error: Invalid HELO. response=501 Error: Syntax: HELO hostname: 501 Error: Syntax: HELO hostname
at SMTPConnection._actionHELO (/home/hunter/projects/proxy-e/node_modules/nodemailer/lib/smtp-connection/index.js:1139:27)
at SMTPConnection._processResponse (/home/hunter/projects/proxy-e/node_modules/nodemailer/lib/smtp-connection/index.js:762:20)
at SMTPConnection._onData (/home/hunter/projects/proxy-e/node_modules/nodemailer/lib/smtp-connection/index.js:558:14)
at TLSSocket._socket.on.chunk (/home/hunter/projects/proxy-e/node_modules/nodemailer/lib/smtp-connection/index.js:510:47)
at TLSSocket.emit (events.js:182:13)
at addChunk (_stream_readable.js:283:12)
at readableAddChunk (_stream_readable.js:264:11)
at TLSSocket.Readable.push (_stream_readable.js:219:10)
at TLSWrap.onread (net.js:639:20)
code: 'EPROTOCOL',
response: '501 Error: Syntax: HELO hostname',
responseCode: 501,
command: 'HELO' }
Я пытаюсь подключиться через:
let optionsTwo = {
port: 465,
host: 'mydomain.com',
secure: true,
name: 'mydomain.com',
transactionLog: true,
debug: true,
};
const connection = new SMTPConnection(optionsTwo);
connection.connect(function() {
console.log("connected?");
let authTwo = {
user: 'foo',
pass: 'bar'
};
connection.login(authTwo, function(err) {
if (err) {
console.log("err::", err);
}
console.log("logged in?");
});
});
connection.on("error", function(err) {
console.log("error: ", err);
});
Мой сервер NodeMailer:
let options = {
secure: false,
authOptional: false,
secure: true,
key: hskey,
cert: hscert,
ca: [hschain],
onAuth(auth, session, callback) {
...
},
}
const emailServer = new SMTPServer(options);
emailServer.listen(465);
Мой сервер имеет зарегистрированное доменное имя и сертификат от LetsEncrypt.Я не смог понять, почему я продолжаю получать это HELO hostname 501 error
.При копании в файлы NodeMailer JS я обнаружил следующее:
Обрабатывает ответ сервера для команды STARTTLS.Если есть ошибка *, попробуйте HELO вместо этого, в противном случае инициируйте обновление TLS.Если обновление * завершается успешно, перезапустите EHLO
. Это заставляет меня предположить, что STARTTLS имеет какую-то ошибку, поэтому он пытается использовать HELO и терпит неудачу, но почему?