Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/02/2010, 07:09
utopiko
 
Fecha de Ingreso: marzo-2006
Mensajes: 230
Antigüedad: 18 años, 1 mes
Puntos: 2
Buscar en gmail con imap_open

Tengo este codigo para recuperar correos desde GMAIL. Funciona de cojones, pero quiero mejorarlo permitiendo buscar entre los correos, sabeis que tendria que añadir al hostname para buscar?Es que no se que comando IMAP le tengo que pasar, INBOX es para la entrada pero...


Código PHP:
Ver original
  1. <?
  2. /**
  3.  * Recupera tus emails de Gmail a través de PHP y IMAP
  4.  *http://bezerik.es/me/recupera-tus-emails-de-gmail-a-traves-de-php-y-imap/
  5.  * *
  6.  * Idea original: Retrieve Your Gmail Emails Using PHP and IMAP.
  7.  * Url: http://davidwalsh.name/gmail-php-imap
  8.  */
  9.  
  10. /* Configuracion del servidor IMAP */
  11. $hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
  12. $username = '[email protected]';
  13. $password = 'davidwalsh';
  14.  
  15. /* Intento de conexión */
  16. $inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
  17.  
  18. /* Recuperamos los emails */
  19. $emails = imap_search($inbox,'ALL');
  20.  
  21. /* Si obtenemos los emails, accedemos uno a uno... */
  22. if($emails) {
  23.  
  24.     /* variable de salida */
  25.     $output = '';
  26.  
  27.     /* Colocamos los nuevos emails arriba */
  28.     rsort($emails);
  29.  
  30.     /* por cada email... */
  31.     $i=0;
  32.     foreach($emails as $email_number) {
  33.  
  34.         /* Obtenemos la información específica para este email */
  35.         $overview = imap_fetch_overview($inbox,$email_number,0);
  36.         $message = imap_fetchbody($inbox,$email_number,2);
  37.  
  38.         /* Mostramos la información de la cabecera del email */
  39.         $output.= '<li>';
  40.         $output.= '<div class="header '.($overview[0]->seen ? 'read' : 'unread').'">';
  41.         $output.= '<span class="subject">'.$overview[0]->subject.'</span> ';
  42.         $output.= '<span class="from"><pre>'.$overview[0]->from.'</pre></span>';
  43.         $output.= '<span class="date">on '.$overview[0]->date.'</span>';
  44.         $output.= '</div>';
  45.  
  46.         /* Mostramos el mensaje del email */
  47.         $output.= '<div class="message" id="msg_'.$i.'"><pre>'.$message.'</pre></div>';
  48.         $output.= '</li>';
  49.        
  50.         $i++;
  51.     }
  52.  
  53.     echo '<ul class="emails">'.$output.'</ul>';
  54. }
  55.  
  56. /* Cerramos la connexión */
  57. imap_close($inbox);
  58. ?>