#!/usr/local/bin/perl

use Net::POP3;

###
# Let the stdin input control the function of everything.
###

$| = 1;

select STDIN;
$| = 1;
select STDOUT;

while ( <STDIN> )
{

  if ( /^port\s+(.*)/i )
  {
    $port = $1;
  }

  ###Connect to host.
  if ( /^host\s+(.*)/i )
  {
    $host = $1;
    if ($port != 0 )
    {
      $pop = Net::POP3->new($host);
    }
    else
    {
      $pop = Net::POP3->new($host, "Port" => $port);
    }
  }

  if ( /^login\s+(..*?)\s+(.*)/i )
  {
    $user = $1;
    $pass = $2;

    $listsize = $pop->login($user, $pass);
    print "Mailbox_size: $listsize\n";
  }
  
  if ( /^list/i )
  {
    %list = %{ $pop->list() };
    my @keys = sort (keys(%list) );

    print "List_size: ", scalar( @keys ),"\n";
    foreach $num (@keys)
    {
      print "$num $list{$num}\n";
    }
  }
  
  if ( /^get\s+(.*)/i )
  {
    $num = $1;

    $mes_size = $pop->list($num);
    if ($mes_size)
    {
      $message = $pop->get($num);
      print "Message_lines: ",scalar(@{$message}),"\n";
      print @{ $message }, "\n";
    }
  }

  if ( /^end/i )
  {
    $pop->quit();
  }

  

}

