Я пытаюсь подключить своего клиента к серверу smtp gmail, не используя определенные узлы-smtp-библиотеки (я хочу понять, как работают сокеты и smtp), но после установки соединения с сервером я получаю нет ответа, я пишу в сокет. Это часть моего кода:SMTP-соединение с узлом
var options = {
host: 'smtp.gmail.com',
username: '[email protected]',
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');
});
}
Что я получаю в консоли: CONNECTED TO: smtp.gmail.com:25 ДАННЫЕ: 220 mx.google.com ESMTP n7sm5406410lae.47 - gsmtp
Это все - никаких ошибок, нет ответов 5xx или 4xx, только 220 после установления соединения, и я не понимаю, почему это происходит. Я буду очень признателен за вашу помощь.
неправильный порт! используйте '465' и' ssl: true', вместо '25'. А также, ЧТО ВЫ ХОТИТЕ СДЕЛАТЬ С ЭТОМ КОДОМ? – Ravi
Если вы хотите узнать, как работает SMTP, сначала прочитайте и поймите соответствующий стандарт [RFC2821] (https://www.ietf.org/rfc/rfc2821.txt), а затем начните кодирование. Это лучше, чем попытки некоторых записей, которые не соответствуют стандарту, а затем задаются вопросом, почему это не работает. Некоторые подсказки: не забудьте отправить концы строк. –
@Ravi это всего лишь фрагмент кода, который я хочу отправить на сервер smtp любые данные (даже некорректные) и получить любой ответ. После того, как я выясню, как это сделать, я попытаюсь отправить правильные данные электронной почты на сервер. Как включить ssl? –