Está usted en Indice > Construcción > Lenguajes > Perl > Lecciones y Paso a Paso > POP3 con Perl
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

POP3 con Perl

Introducción

Ya van varios mails que recibo de personas que quieren saber como leer emails por medio de POP3 con perl.

Ya hemos visto en tutoriales anteriores como enviar emails tanto en Windows como en UNIX. Ahora esta vez vamos a aprender a leer nuestros mails usando perl.

Este tutorial es una base con el que más adelante podrán hacer aplicaciones más complejas.

El módulo

Para leer nuestros mails por medio de POP en CPAN tenemos un módulo que hace justo lo que necesitamos. El módulo se llama Net::POP3, este módulo nos brinda justo lo que necesitamos para lograr lo que queremos.

Iniciando

Como siempre primero ponemos la cabeza de nuestro script donde llamamos al módulo, y como es necesario al pragma strict:

#!/usr/bin/perl -w

use strict;
use Net::POP3;

Ahora necesitamos crear un objeto de Net::POP3 abriendo de esta manera una conexión a nuestro servidor:

my $pop = Net::POP3->new('SERVIDOR', Timeout => 60) || die "No se pudo abrir conexión: $!";

Lo que hacemos es llamar a la función new enviando dos argumentos:

SERVIDOR que es el servidor al que queremos conectarnos. Normalmente es algo como: mail.miservidor.com. Y el Timeout donde indicamos que si no logramos establecer una conexión en 60 segundos deje de intentar y regrese un error. Hacemos esto para evitar que el programa se quede atorado para siempre intentando conectarse.

Muy bien, ya estamos conectados. Ahora necesitamos hacer login con nuestro username y contraseña. Esto lo hacemos de la siguiente manera:

$pop->login("USERNAME", "CONTRASEÑA") or die("No se pudo hacer login: $!");

Sencillo, llamamos la función login a la cual enviamos dos argumentos, el USERNAME y la CONTRASEÑA. En caso de que el login sea incorrecto termina el proceso inmediatamente enviando un error.

Ya que hicimos el login correctamente, ahora vamos a sacar una lista de los mensajes que tenemos en el INBOX de la siguiente manera:

my $msgnums = $pop->list;

Llamamos a la función list la cual regresa una referencia a una hash con todos los mensajes que se lograron sacar del INBOX.

Para poder desplegar cada mensaje lo que hacemos es:

foreach my $msgnum (keys %$msgnums) {
my $msg = $pop->get($msgnum);
print @$msg;
}

Lo que hacemos aquí es un loop a través de cada una de las llaves de nuestro hash que contiene todos los mensajes, llamando con cada una la función get:

my $msg = $pop->get($msgnum);

Usuarios que han visto este tema también han visto...

- Buscar en un array en Perl
- Hola Mundo
- Leer documentos via HTTP
- Trabajar con archivos en Perl
- Upload de Archivos con Perl


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 20-07-2008 a las 19:41:28