Tag: pop3

与Gmail和node.js的POP3对话

我正在尝试在node.js中为gmail编写一个简单的POP3客户端。 我最初写了一个inputPOP3命令的地方,他们被发送到服务器,服务器响应。 这工作正常,因为我可以在input下一个命令之前等待服务器的响应。 但是我想做一个自动对话,程序本身发送命令并等待自己的回应。 简单地做: stream.write('USER ***&@gmail.com'); stream.write('PASS *****'); stream.write('LIST'); 不起作用,因为节点中的stream的asynchronous性质。 在发送下一条消息之前,我必须等待stream的“数据”事件,否则根本没有任何事情发生。 所以试过这样的: var tls =require ('tls'); var stream = tls.connect(995,'pop.gmail.com', function() { console.log ('Conexion establecida'); }); stream.on('data', function(data) { var str = data.toString(); console.log(str.substr(0,14)); if(str.substr(0,14)=="+OK Gpop ready") { console.log('Sending username…'); process.nextTick(function() { stream.write ('USER ***********@gmail.com'); }); } if(str.substr(0,14)=="+OK send PASS") { console.log('Recieving list of […]

NodeJS STARTTLS使用SNI

我正在Node.JS中构build一个简单的,具有STARTTLSfunction的POP3代理服务器,而且我还有相当长的一段时间。 代理服务器作为许多后端服务器的前端,所以它必须dynamic加载他们的证书,这取决于客户端的连接。 我试图使用SNICallback,它带给我客户端使用的服务器名称,但之后我无法设置正确的证书,因为在创build安全上下文之前,我需要一个证书。 代码如下: // Load libraries var net = require('net'); var tls = require('tls'); var fs = require('fs'); // Load certificates (created with openssl) var certs = []; for (var i = 1; i <= 8; i++) { var hostName = 'localhost' + i; certs[hostName] = { key : fs.readFileSync('./private-key.pem'), cert : fs.readFileSync('./public-cert' + […]