我试图在不使用特定 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/