Aquí está el código que estoy usando:La lectura de datos desde fsockopen utilizando fgets/fread cuelga
if (!($fp = fsockopen('ssl://imap.gmail.com', '993', $errno, $errstr, 15)))
echo "Could not connect to host";
$server_response = fread($fp, 256);
echo $server_response;
fwrite($fp, "C01 CAPABILITY"."\r\n");
while (!feof($fp)) {
echo fgets($fp, 256);
}
me sale la primera respuesta:
OK Gimap ready for requests from xx.xx.xx.xx v3if9968808ibd.15
pero entonces los tiempos página cabo. He buscado a través de stream_set_blocking, stream_set_timeout, stream_select, fread, etc. pero no pude hacerlo funcionar. Necesito leer todos los datos que envía el servidor y luego proceder con otros comandos (estaría recuperando correos electrónicos usando imap).
Gracias
¿está seguro de la respuesta es sólo 256 ¿Caracteres largos? ¿Y estás seguro de que el socket es grabable? Es posible que su script se cuelgue en 'fwrite()' porque el socket no se puede escribir ... – shadyyx
Sí. Probé eso al reemplazar el ciclo while escribiendo simples fgets ($ fp, 256) dos veces. Y esta es la respuesta que recibo: * CAPACIDAD IMAP4rev1 DESACELERAR IDLE NAMESPACE CUOTA ID XLIST NIÑOS X-GM-EXT-1 XYZZY SASL-IR AUTH = XOAUTH C01 OK –