代码之家  ›  专栏  ›  技术社区  ›  JacobTDC

我无法读取与SMTP服务器的连接上的响应

  •  -1
  • JacobTDC  · 技术社区  · 9 年前

    这是我的代码:

    socket = new net.Socket().connect(465, 'smtp.gmail.com', () => {
      console.log('Connected')
      socket.write('HELO smtp.gmail.com\r\n')
    }).on('data', (data) => console.log(data))
    

    当我运行它时 <Buffer 15 03 01 00 02 02 46> ,当转换为文本时,它是不可读的。 我如何将其转换为可读的JSON/text/无论它是什么?

    2 回复  |  直到 9 年前
        1
  •  0
  •   whites11    9 年前

    这里的问题是,您正在打开一个针对TLS服务器的套接字。得到的是二进制数据,而不是纯文本字符串。

    console.log(data.toJSON())
    

    如果数据不是JSON,则可以简单地使用toString()方法获取字符串:

    console.log(data.toString());
    

    有关缓冲区类的更多详细信息,请参阅此处的官方文档 https://nodejs.org/api/buffer.html

        2
  •  0
  •   JacobTDC    9 年前

    感谢@white11和@jfriend00的帮助,我找到了答案:

    https://nodejs.org/api/tls.html