lunes, 14 de septiembre de 2015

Descargar Emails con IMAP y PHP

En el artículo Descargar emails con POP3 y PHP ya vimos como acceder a nuestro email mediante POP3. Ahora vamos a ver qué pequeñas modificaciones hay que hacer para acceder a un servidor vía IMAP.

La principal modificación está en la definición del hostname que utilicemos al establecer la conexión con imap_open. Los servidores de correo suelen atender el protocolo IMAP por el puerto 143.
$hostname = '{aulambra.com:143/imap/ssl}INBOX';
$username = 'usuario@aulambra.com';
$password = 'password';
 
$inbox = imap_open($hostname,$username,$password) or die('Ha fallado la conexión: ' . imap_last_error());
En este caso este servidor de email necesita de una conexión segura. Es por ello que utilizamos el flag /ssl.
El resto de pasos son iguales que con POP3. Hacemos el filtrado de mensajes mediante imap_search:
$emails = imap_search($inbox,'ALL');
El siguiente paso será recorrerlos accediendo a su cabecera con imap_fetch_overview:
foreach($emails as $email_number) {
  $overview = imap_fetch_overview($inbox,$email_number,0);
  $salida.= 'Tema: '.$overview[0]->subject;
  $salida.= 'De: '.$overview[0]->from;
}
Y por último no se nos puede olvidar la conexión con imap_close:
imap_close($inbox);

Descargar correo de Gmail

Lo primero que tenemos que hacer es confirmar que tenemos activado el acceso por IMAP en nuestra cuenta de GMail. Para ello tenemos que ir a:
Mail Settings » Forwarding and POP/IMAP » IMAP Access
Seleccionamos la opción Enable IMAP y guardamos los cambios.
Lo segundo que tenemos que saber es que al servidor de IMAP de GMail se accede mediante la siguiente configuración:
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'usuario@gmail.com';
$password = 'password';
Hay que tener cuidado ya que se utiliza el puerto 993 para acceder por IMAP.

No hay comentarios:

Publicar un comentario