Ecco il codice che sto usando:lettura dei dati da fsockopen utilizzando fgets/fread pende
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);
}
ottengo la prima risposta:
OK Gimap ready for requests from xx.xx.xx.xx v3if9968808ibd.15
ma poi i tempi di pagina fuori. Ho cercato attraverso stream_set_blocking, stream_set_timeout, stream_select, fread, ecc. Ma non sono riuscito a farlo funzionare. Ho bisogno di leggere tutti i dati che il server invia e quindi procedere con altri comandi (vorrei recuperare le email usando imap).
Grazie
Sei sicuro che la risposta è soltanto 256 caratteri lunghi? E sei sicuro che la presa sia scrivibile? È possibile che il tuo script si blocchi su 'fwrite()' a causa del socket non è scrivibile ... – shadyyx
Sì. L'ho provato sostituendo il ciclo while con una semplice scrittura di fgets ($ fp, 256) due volte. E questa è la risposta che ottengo: * CAPACITÀ IMAP4rev1 ID NON SELEZIONABILE NAMESPACE ID QUOTA XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH = XOAUTH C01 OK –