Gmail imap via PHP socket
Hej eksperter,Jeg forsøgte i første omgang at oprette forbindelse til min Gmail konto via imap_open, dette er desværre ikke muligt på mit webhotel, fik følgende besked fra deres support: "Så vidt jeg ved, er det pga. en bug i det IMAP library som PHP bruger, der gør det ikke virker. Brug en PHP klasse i stedet og en direkte socket forbindelse, så virker det."
Efter at have søgt rundt, har jeg ikke fundet meget som kan bruges, men dog en smugle kode:
////////////////////////////////////////////
// Open a socket
if (!($fp = fsockopen('ssl://imap.gmail.com', 993, $errno, $errstr, 15))) die("Could not connect to host");
// Set timout to 1 second
if (!stream_set_timeout($fp, 1)) die("Could not set timeout");
// Fetch first line of response and echo it
echo fgets($fp);
// Send data to server
echo "Writing data...";
fwrite($fp, "C01 CAPABILITY\r\n");
echo " Done\r\n";
// Keep fetching lines until response code is correct
while ($line = fgets($fp)) {
echo $line;
$line = preg_split('/\s+/', $line, 0, PREG_SPLIT_NO_EMPTY);
$code = $line[0];
if (strtoupper($code) == 'C01') {
break;
}
}
echo "I've finished!";
fclose($fp);
////////////////////////////////////////////
Output er følgende:
* OK Gimap ready for requests from 94.231.108.221 g8if1416270lbr.32 Writing data... Done * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH AUTH=XOAUTH2 C01 OK Thats all she wrote! g8if1416270lbr.32 I've finished!
Men hvordan får jeg imap til at fungere, håber nogen har et eksempel / et hint til hvordan det virker :)
/ Morten