Oto kod, który używam:odczytu danych z fsockopen użyciu fgets/fread wisi
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);
}
dostanę pierwszą odpowiedź:
OK Gimap ready for requests from xx.xx.xx.xx v3if9968808ibd.15
ale wtedy czasy stronę wyjścia. Przeszukałem przez stream_set_blocking, stream_set_timeout, stream_select, fread, itp., Ale nie mogłem go uruchomić. Muszę przeczytać wszystkie dane, które wysyła serwer, a następnie wykonać inne polecenia (chciałbym pobierać wiadomości e-mail przy użyciu imap).
Dzięki
Czy na pewno odpowiedź jest tylko 256 długo zwlekać? Czy jesteś pewien, że gniazdo można zapisać? Możliwe, że Twój skrypt zawiesza się na 'fwrite()', ponieważ gniazdo nie jest możliwe do zapisu ... – shadyyx
Tak. Testowałem to, zastępując pętlę while prostym pisaniem fgetów ($ fp, 256) dwa razy. I to jest odpowiedź, którą otrzymuję: * MOŻLIWOŚĆ IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST DZIECI X-GM-EXT-1 XYZZY SASL-IR AUTH = XOAUTH C01 OK –