首页 > 解决方案 > “在建立安全 TLS 连接之前客户端网络套接字已断开”nodemailer 中的错误

问题描述

我想设置联系表,这就是为什么我使用节点邮件程序和邮递员进行测试,但是,我收到了这个错误

Client network socket disconnected before secure TLS connection was established

这是我的代码:

const transporter = nodemailer.createTransport({
  host: 'smtp.itcarver.com',
  port: 587,
  secure: false, 
  auth: { user: 'support@itcarver.com', pass: 'xyz' },
  tls: { rejectUnauthorized: false }
});

const mailOptions = {
  from: 'support@itcarver.com', 
  to: "xyz", 
  subject: "subject", 
  text: "test", 
};
transporter.sendMail(mailOptions, function(error, info) {
  if (error) {
    console.log(error)
    res.send("error");
  } else {
    res.send('Email sent: ');
  }
});

这是错误:

Error: Client network socket disconnected before secure TLS connection was established
    at connResetException (internal/errors.js:604:14)
    at TLSSocket.onConnectEnd (_tls_wrap.js:1513:19)
    at Object.onceWrapper (events.js:417:28)
    at TLSSocket.emit (events.js:323:22)
    at endReadableNT (_stream_readable.js:1204:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  code: 'ESOCKET',
  path: undefined,
  host: 'smtp.itcarver.com',
  port: undefined,
  localAddress: undefined,
  command: 'CONN'
}

标签: expressnodemailer

解决方案


您可能需要将 tls maxVersion 设置为非默认值(即 TLSv1.3)。在我的情况下这是必要的。

        tls: { maxVersion: 'TLSv1.2' }

推荐阅读