Почему я получаю ошибку имени хоста NodeMailer HELO 501? - PullRequest
0 голосов
/ 12 октября 2018

Я получаю сообщение об ошибке 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 и терпит неудачу, но почему?

1 Ответ

0 голосов
/ 13 октября 2018

По какой-то причине name: 'mydomain.com', неверно, и при его удалении я больше не получаю ошибку.

...