node.js - 与 Node 的 SMTP 连接

标签 node.js sockets email smtp gmail

我试图在不使用特定 Node smtp 库的情况下将我的客户端连接到 gmail 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');
    });
}

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

就是这样 - 没有错误,没有 5xx 或 4xx 响应,建立连接后只有 220,我不明白为什么会这样,非常感谢你的帮助。

最佳答案

作为 future 读者的引用,您需要在命令末尾添加回车符 (\r) 和换行符 (\n):

client.write('HELO smtp.gmail.com\r\n');

关于node.js - 与 Node 的 SMTP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26211431/

相关文章:

node.js - 通过事件网关异步回答 Alexa 智能家居技能时,如何回答 AWS Lambda?

javascript - svelte:svelte 如何在 if block 之间运行函数?

node.js - "npm help update"(在 Windows 中)给出无效 URL 错误

javascript - 如何在node.js和ejs中提交表单而不刷新?

php - 何时处理 Socket.io 通知?

ruby-on-rails - 允许用户为 Rails 中的 ActionMailer 创建自定义电子邮件模板

php - Symfony 3.3 和 Swiftmailer - 由服务器延迟的 Controller 创建和发送的邮件

c - 知道客户端何时完成从 C 中的套接字读取

c++ - 在关闭套接字之前未传送 actionscript tcp 数据包

python - 在 Python 中像文本文件一样打开 Outlook .msg?