与节点的 SMTP 连接

And*_*ski 5 sockets email gmail smtp node.js

我正在尝试将我的客户端连接到 gmail smtp 服务器而不使用特定的 node-smtp 库(我想了解套接字和 smtp 都是如何工作的),但是在设置到服务器的连接后,无论我写什么都没有响应插座。这是我的代码的一部分:

var options = {
    host: 'smtp.gmail.com',
    username: 'mylogin@gmail.com',
    password: 'mypass',
    port: 25
    },
    net = require('net');

exports.addEmail = function(req, res) {

    var client = net.connect(options.port, options.host, function() {
        console.log('CONNECTED TO: ' + options.host + ':' + options.port);
        //i can write to a socket anything, still no response
        client.write('HELO smtp.gmail.com');
    });

    client.on('data', function(data) {
        console.log('DATA: ' + data);
    });

    client.on('error', function(err) { console.log(err );})

    client.on('close', function() {
        console.log('Connection closed');
    });
}
Run Code Online (Sandbox Code Playgroud)

我在控制台中得到的是:连接到:smtp.gmail.com:25 数据:220 mx.google.com ESMTP n7sm5406410lae.47 - gsmtp

这就是全部 - 没有错误,没有 5xx 或 4xx 响应,建立连接后只有 220,我不明白为什么会发生这种情况,我将非常感谢您的帮助。

que*_*dam 6

作为未来读者的参考,您需要在命令末尾添加回车 (\r) 和换行 (\n) 字符:

client.write('HELO smtp.gmail.com\r\n');
Run Code Online (Sandbox Code Playgroud)