php HTTP tunnel to IMAP/POP3 using SSL

2019-07-12 14:21发布

问题:

My code should check email boxes via proxy with PHP using SSL.

Zend\Mail package provides implementation of both protocols without php extention and fits fine.

I partially override connect() method by code:

$this->socket = fsockopen($proxy, $proxy_port, $errno, $errstr, self::TIMEOUT_CONNECTION);
$this->sendRequest("CONNECT {$host}:{$port} HTTP/1.1");
$this->sendRequest("Host: {$host}:{$port}");
$this->sendRequest($userAgent);
$this->sendRequest("Proxy-Authorization: basic " . base64_encode("$user:$pass") . "\r\n");

// Remove 2 lines with proxy response
fgets($this->socket);
fgets($this->socket);

With unsecure connection everything works fine, but not works for secured port. Connections on 110 port rejected by server with "please use SSL/TLS", when script tries to connect on secure port 995, nothing happend, no any response from mail server.

Probably, I missed one more HTTP header or so.

Anybody knows which command need send to end server through HTTP tunnel to start SSL connection?