Jul 11

Recupera tus emails de Gmail a través de PHP y IMAP

3
Escrito hace 7 años por Bezerik, archivado en PHP.

Hasta dia de hoy desconocía por completo la extensión IMAP pero no imaginaba que recuperar los mensajes de correo electrónico de mi cuenta de Gmail usando PHP fuese tan sencillo.

El código  PHP que obtiene los correos electrónicos de Gmail:

<?

/**
 * Recupera tus emails de Gmail a través de PHP y IMAP
 *http://bezerik.es/me/recupera-tus-emails-de-gmail-a-traves-de-php-y-imap/
 * * 
 * Idea original: Retrieve Your Gmail Emails Using PHP and IMAP.
 * Url: http://davidwalsh.name/gmail-php-imap
 */

/* Configuracion del servidor IMAP */
$hostname '{imap.gmail.com:993/imap/ssl}INBOX';
$username 'davidwalshblog@gmail.com';
$password 'davidwalsh';

/* Intento de conexión */
$inbox imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' imap_last_error());

/* Recuperamos los emails */
$emails imap_search($inbox,'ALL');

/* Si obtenemos los emails, accedemos uno a uno... */
if($emails) {

    
/* variable de salida */
    
$output '';

    
/* Colocamos los nuevos emails arriba */
    
rsort($emails);

    
/* por cada email... */
    
$i=0;
    foreach(
$emails as $email_number) {

        
/* Obtenemos la información específica para este email */
        
$overview imap_fetch_overview($inbox,$email_number,0);
        
$message imap_fetchbody($inbox,$email_number,2);

        
/* Mostramos la información de la cabecera del email */
        
$output.= '<li>';
        
$output.= '<div class="header '.($overview[0]->seen 'read' 'unread').'">';
        
$output.= '<span class="subject">'.$overview[0]->subject.'</span> ';
        
$output.= '<span class="from"><pre>'.$overview[0]->from.'</pre></span>';
        
$output.= '<span class="date">on '.$overview[0]->date.'</span>';
        
$output.= '</div>';

        
/* Mostramos el mensaje del email */
        
$output.= '<div class="message" id="msg_'.$i.'"><pre>'.$message.'</pre></div>';
        
$output.= '</li>';
        
        
$i++;
    }

    echo 
'<ul class="emails">'.$output.'</ul>';


/* Cerramos la connexión */
imap_close($inbox);
?>

Asegúrate que tienes habilitado el servicio IMAP en tu cuenta de GMAIL.

  1. Entra a tu cuenta de Gmail.
  2. Accede el panel de “Configuración”.
  3. Selecciona la pestaña Reenvío y correo POP/IMAP.
  4. En la opción de “Acceso IMAP:” escoge la opción de “Habilitar IMAP”.

Habilitar IMAP en Gmail

Demo

Como siempre, David Walsh nos sorprende con un ejemplo en donde aprovecha añadir Mootools para conseguir un efecto 2.0

1 Referencias

  1. contestar automaticamente correos de publicidad, .. como se hace?

2 Comentarios

  1. Estimado, eres el unico en todo internet que me enseño a primero habilitar el imap en la configuracion del mail, que pasa si lo quiero hacer con una cuenta de mi hosting que es pop como se hace, y es lenta la recuperacion se demora bastante, es necesario configurar algo en el cepanel del hosting?

    saludos

¿Y tú que dices?