Avatar billede mp82 Nybegynder
13. oktober 2012 - 15:39 Der er 3 kommentarer og
1 løsning

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
Avatar billede arne_v Ekspert
14. oktober 2012 - 15:16 #1
IMAP er en ret kompleks protokol.

Hvis du ikke har erfaring med implementing af protokoller oven paa PHP sockets, saa tror jeg ikke at du kommer i maal.

Har du erfaring saa starter du bare med IMAP4 standarden (RFC 3501).
Avatar billede mp82 Nybegynder
18. oktober 2012 - 15:36 #2
Jeg er som sådan enig, og dømme ud fra hvad som findes online, så er der ikke mange som ønsker at dele deres erfaringer på det område.

Men dog sker det jo at nogen har en stump kode liggende, og ønsker at dele...
Fair nok, det er måske også noget som kræver konsulent = $$$ for den type opgaver.

Jeg må afvente PHP IMAP Library bliver fejlrettet, så den nemme løsning virker igen.
Avatar billede arne_v Ekspert
18. oktober 2012 - 15:51 #3
Har du checket hvad PEAR har at tilbyde f.eks. http://pear.php.net/package/Net_IMAP ?
Avatar billede mp82 Nybegynder
12. november 2012 - 15:18 #4
Efter mange forsøg, er løsningen blevet at jeg har fundet en PHP server som benytter en ældre version af PHP (uden fejl) - det er ikke en køn løsning, men det virker.

Tak arne_v for input.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester