Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Recuperar emails con Net::POP3

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Módulos
Mensaje Sab Feb 23, 2008 5:54 am
Xbai
Perlero Nuevo
Perlero Nuevo
Registrado: 23 Feb 2008
Mensajes: 3
Recuperar emails con Net::POP3 Responder citando

Hola foreros:

Tengo un problemilla con este módulo, soy incapaz de recuperar los correos de mi cuenta de Gmail. También he probado con Mail::Box::POP3 y con Mail::Webmail::Gmail y no consigo nada.

Tampoco puedo enviar mails con Net::SMTP, pero sí con el modulo Emails.

Los ejemplos que estoy utilizando los copio del libro "Perl Introducción al desarrollo Web" de S.Suehring, excepto el módulo que me funciona, el de Emails.

Os pongo el código para ver si me podéis ayudar, muchas gracias de antemano:

Perl:
#!/usr/bin/perl -w

use Net::POP3;
use strict;

my $usuario = "$usuario";
my $pass = "$pass";
my $pop3conn = Net::POP3->new('pop.gmail.com', Timeout=>60)
                                or die "NADA.\n";
#$pop3conn->auth($usuario,$pass);
if($pop3conn->login($usuario, $pass) > 0){
        my $nummsg = $pop3conn->list();
        foreach my $nummsg (keys %{$nummsg}){
        my $msg = $pop3conn->get($nummsg);
        print @$msg;
        $pop3conn->delete($nummsg);
        }
}
$pop3conn->quit();
Mensaje Sab Feb 23, 2008 4:30 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3861
Ubicación: Valladolid, España
Responder citando

Bienvenido a los foros de Perl en Español, Xbai.

* ¿Has activado la opción de permitir acceso por POP en el menú de configuración de Gmail?
* En el new(), pon la opción Debug => 1, para saber qué es lo que pasa.
Mensaje Dom Feb 24, 2008 8:19 am
Xbai
Perlero Nuevo
Perlero Nuevo
Registrado: 23 Feb 2008
Mensajes: 3
Responder citando

Gracias por responder explorer. Te cuento :
Gmail tiene el pop habilitado, leo el correo con Kontact.
La opcion Debug=>1 no me dice nada, el programa muere en el new() y no muestra más información.
Me resulta raro porque siempre recibo el GMail en el ordenador y además he utilizado varios modulos y nada.
Tengo abiertos los puertos 995 y 110, por si sirve de algo Very Happy
Mensaje Dom Feb 24, 2008 9:28 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3861
Ubicación: Valladolid, España
Responder citando

Veo que hay que activar una conexión SSL para entrar por el puerto 995 de pop.gmail.com.

Prueba a usar el módulo Net::POP3::SSLWrapper en lugar del Net::POP3.

En realidad, lo que hace el módulo Net::POP3::SSLWrapper es llamar al módulo IO::Socket::SSL, para ayudar en la comunicación SSL.

Aquí tienes otro ejemplo:
Perl:
use Mail::POP3Client;
use IO::Socket::SSL;

my $socket = IO::Socket::SSL->new(
                PeerAddr => 'pop.gmail.com',
                PeerPort => 995,
                Proto    => 'tcp',
            )
            or die "No socket!: $!\n";
my $pop = Mail::POP3Client->new();
$pop->User(USERNAME);
$pop->Pass(PASSWORD);
$pop->Socket($socket);
$pop->Connect();

# me fijo cuantos hay
my $count = $pop->Count();

# si hay más de uno, los proceso
if ($count > 0){
    # por cada uno lo voy trayendo
    for ($i = 1; $i <= $count; $i++) {
        # me los va devolviendo línea por línea
        foreach ( $pop->HeadAndBody($i) ) {
            # acá va el procesamiento, por ejemplo
            print $_;
        }
    }
}
Mensaje Dom Feb 24, 2008 3:50 pm
Xbai
Perlero Nuevo
Perlero Nuevo
Registrado: 23 Feb 2008
Mensajes: 3
¡Por fin! Responder citando

¡¡Gracias, explorer!!. ¡¡He "recuperado" mensajes de mi cuenta,por fin!! Razz , con el código que has posteado. Ayuda mucho esta modificación, sacada de la ayuda de CPAN:

Perl:
# acá va el procesamiento, por ejemplo
    /^(From|Subject):\s+/i and print $_, "\n";


Pero me gustaría hacerlo con POP3, creo que será algo de autenticación SSL, pero el SSLWrapper tampoco funciona Evil or Very Mad
Mensaje Dom Feb 24, 2008 5:40 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3861
Ubicación: Valladolid, España
Responder citando

No podrás recuperar correo de Gmail con solo POP3. Ya lo dice la ayuda de Gmail.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Módulos Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group