[Perl] Gmail Inbox 0.1

Iniciado por BigBear, 28 Abril 2012, 16:50 PM

0 Miembros y 1 Visitante están viendo este tema.

BigBear

Acabo de terminar un simple programa en Perl para poder leer mis mensajes de mi cuenta de correo Gmail , no es nada del otro mundo solo ponen el usuario y la contraseña de la cuenta y el programa carga un menu en el cual pueden listar todos los mensajes o leer un mensaje completo.

El codigo

Código (perl) [Seleccionar]

#!usr/bin/perl
#Gmail Inbox 0.1
#Coded By Doddy H
#Modules
#ppm install http://www.open.com.au/radiator/free-downloads/Net-SSLeay.ppd
#http://search.cpan.org/~sullr/IO-Socket-SSL-1.54/SSL.pm
#http://search.cpan.org/~fays/GMail-Checker-1.04/Checker.pm

use GMail::Checker;
use HTML::Strip;

head();

print "\n\n[+] Username : ";
chomp( my $user = <stdin> );
print "\n[+] Password : ";
chomp( my $pass = <stdin> );

while (1) {
    print "\n\n[+] Options\n\n";
    print "[1] : Messages list\n";
    print "[2] : Read Message\n";
    print "[3] : Exit\n\n";
    print "[+] Option : ";
    chomp( my $op = <stdin> );

    if ( $op eq "1" ) {
        listar( $user, $pass );
    }
    elsif ( $op eq "2" ) {
        print "\n[+] ID : ";
        chomp( my $id = <stdin> );
        getallmsg( $user, $pass, $id );
    }
    elsif ( $op eq "3" ) {
        copyright();
    }
    else {
        print "\n\n[-] Bad Option\n\n";
    }
}

sub listar {

    my $total = total( $_[0], $_[1] );
    print "\n[+] Messages found : $total\n\n";

    for my $num ( 1 .. $total ) {
        getdata( $_[0], $_[1], $num );
    }
}

sub total {
    my $mod_total = new GMail::Checker( USERNAME => $_[0], PASSWORD => $_[1] );
    my ( $a, $b ) = $mod_total->get_msg_nb_size("TOTAL_MSG");
    return $a;
}

sub getdata {

    my $mod_msg = new GMail::Checker( USERNAME => $_[0], PASSWORD => $_[1] );

    my @msg = $mod_msg->get_msg( MSG => $_[2] );

    print "\n[+] ID : $_[2]\n\n";

    my $mas = $msg[0]->{headers};

    if ( $mas =~ /From: (.*)/ig ) {
        my $from = $1;
        print "[+] From : $from\n";
    }

    if ( $mas =~ /Subject: (.*)/ig ) {
        my $asunto = $1;
        print "[+] Subject : $asunto\n";
    }

    if ( $mas =~ /Date: (.*)/ig ) {
        my $date = $1;
        print "[+] Date : $date\n";
    }

}

sub getallmsg {

    print "\n[+] Reading message\n\n";

    my $mod_msg = new GMail::Checker( USERNAME => $_[0], PASSWORD => $_[1] );

    my @msg = $mod_msg->get_msg( MSG => $_[2] );

    print "[+] ID : $_[2]\n\n";

    my $mas = $msg[0]->{headers};

    if ( $mas =~ /From: (.*)/ig ) {
        my $from = $1;
        print "[+] From : $from\n";
    }

    if ( $mas =~ /To: (.*)/ig ) {
        my $to = $1;
        print "[+] To : $to\n";
    }

    if ( $mas =~ /Subject: (.*)/ig ) {
        my $asunto = $1;
        print "[+] Subject : $asunto\n";
    }

    if ( $mas =~ /Date: (.*)/ig ) {
        my $date = $1;
        print "[+] Date : $date\n";
    }

    my $text = $msg[0]->{body};
    if ( $text =~
        /<body class=3D'hmmessage'><div dir=3D'ltr'>(.*?)<\/div><\/body>/sig )
    {
        my $body = $1;
        $body =~ s/<br>/\n/g;

        my $uno = HTML::Strip->new( emit_spaces => 1 );
        my $body = $uno->parse($body);

        print "\n\n[Body Start]\n\n";
        print $body;
        print "\n\n[Body End]\n\n";
    }
}

sub head {
    print qq(

  @@@@                 @ @    @        @               
@    @                  @    @        @               
@                       @    @        @               
@       @@@ @@   @@@  @ @    @  @ @@  @@@@   @@@  @  @
@  @@@  @  @  @     @ @ @    @  @@  @ @   @ @   @ @  @
@    @  @  @  @  @@@@ @ @    @  @   @ @   @ @   @  @@
@    @  @  @  @ @   @ @ @    @  @   @ @   @ @   @  @@
@   @@  @  @  @ @   @ @ @    @  @   @ @   @ @   @ @  @
  @@@ @  @  @  @  @@@@ @ @    @  @   @ @@@@   @@@  @  @

);
}

sub copyright {
    print "\n\n-- == (C) Doddy Hackman 2012 == --\n\n";
    <stdin>;
    exit(1);
}

#The End ?



Ejemplo de uso



  @@@@                 @ @    @        @
@    @                  @    @        @
@                       @    @        @
@       @@@ @@   @@@  @ @    @  @ @@  @@@@   @@@  @  @
@  @@@  @  @  @     @ @ @    @  @@  @ @   @ @   @ @  @
@    @  @  @  @  @@@@ @ @    @  @   @ @   @ @   @  @@
@    @  @  @  @ @   @ @ @    @  @   @ @   @ @   @  @@
@   @@  @  @  @ @   @ @ @    @  @   @ @   @ @   @ @  @
  @@@ @  @  @  @  @@@@ @ @    @  @   @ @@@@   @@@  @  @



[+] Username : lagartojuancho

[+] Password : juancho123


[+] Options

[1] : Messages list
[2] : Read Message
[3] : Exit

[+] Option : 1

[+] Messages found : 8


[+] ID : 1

[+] From : Van Helsing <lepuke@hotmail.com>
[+] Subject : RE: Server just blew up
[+] Date : Mon, 23 Apr 2012 18:55:33 -0300

[+] ID : 2

[+] From : Van Helsing <lepuke@hotmail.com>
[+] Subject : RE: Server just blew up
[+] Date : Mon, 23 Apr 2012 18:56:59 -0300

[+] ID : 3

[+] From : Van Helsing <lepuke@hotmail.com>
[+] Subject : RE: Server just blew up
[+] Date : Mon, 23 Apr 2012 19:07:20 -0300

[+] ID : 4

[+] From : Van Helsing <lepuke@hotmail.com>
[+] Subject : hola tonton
[+] Date : Mon, 23 Apr 2012 19:26:17 -0300

[+] ID : 5

[+] From : Van Helsing <lepuke@hotmail.com>
[+] Subject : hola tonton
[+] Date : Mon, 23 Apr 2012 19:26:21 -0300

[+] ID : 6

[+] From : Van Helsing <lepuke@hotmail.com>
[+] Subject : ASUNTO
[+] Date : Mon, 23 Apr 2012 19:30:10 -0300

[+] ID : 7

[+] From : Van Helsing <lepuke@hotmail.com>
[+] Subject : ASUNTO FINAL
[+] Date : Tue, 24 Apr 2012 12:39:14 -0300

[+] ID : 8

[+] From : Van Helsing <lepuke@hotmail.com>
[+] Subject : hola
[+] Date : Wed, 25 Apr 2012 14:13:22 -0300


[+] Options

[1] : Messages list
[2] : Read Message
[3] : Exit

[+] Option :