in reply to Re^3: POP3 client - end
in thread POP3 client - end
greetings from roma Lor* #!/usr/bin/perl use warnings; use strict; use Net::POP3; #use Tie::File; use Term::ReadKey; #tie my @file, "Tie::File", "dane"; my @file; if ($#file != 1){ print "Write pop3 server adress:\n"; chomp($file[0] = <STDIN>); print "Write login:\n"; chomp($file[1] = <STDIN>); } my $time = scalar localtime; my ($msg, $msgnum); my $sep_bold = '#'x80; print "Write password:\n"; ReadMode 'noecho'; chomp(my $key = <STDIN>); ReadMode 'restore'; my $pop = Net::POP3->new($file[0]); my $res = $pop->login($file[1], $key); if ($res>0){print"$sep_bold\nConnect!\nOn $time e-mail status inbox: $ +res post \n$sep_bold\n";} else {print "$sep_bold\nCouldn't connect $!\n$sep_bold\n";exit;} my $syntax = "\tafter login you have this choices:\n \ta number to print the subj of specified mail. \ta range of number to do the same for specified messages. \tall to print out all the subjects. \thnum (e.g. h99) to print the header only of the message. \trnum (e.g. r99) to print only the text of the message. \tx to quit clean \t? to print this help.\n\n"; while($res) { my $msg_id; my $msg_title; my $msg_text; print "$sep_bold\n Make your choice! (all | 99 | 1-99 | h99 | r99 | + x | ?) \n$sep_bold\n"; chomp($msg_id = <STDIN>); if ($msg_id eq 'all') # tutti i subj {foreach my $item(1..$res) {print "$item - ",&get_subject($item),"\n"; +}} elsif ($msg_id =~/^(\d+)-(\d+)$/) # range di subj {foreach my $item($1..$2){print "$item - ",&get_subject($item),"\n";}} elsif ($msg_id =~/^(\d+)$/) # un solo subj {print "$msg_id - ",&get_subject($1),"\n";} elsif ($msg_id =~/^h\s?(\d+)$/i) # header di uno solo msg {print "$msg_id - ",&get_subject($1),"\n";my $ref = &get_head($1);prin +t "\t$_" for @$ref;} elsif ($msg_id =~/^r\s?(\d+)$/i) # testo di uno solo msg {print "$msg_id :\n ";print &get_text($1)} elsif ($msg_id =~/\?/i) # help {print "$sep_bold\nSYNTAX $0:\n$syntax\n$sep_bold\n"} elsif ($msg_id =~/x|q|exit|quit/i) # esci {print "GOODBY ..\n ";$pop->quit();exit;} else {next} } ############################ subroutines ############################# +##### sub get_subject { my $msg_id = shift; my $msg = $pop->get($msg_id); for my $line ( @$msg ) {if( $line =~ /^Subject:(.*)/ ) { return $1}} } ############################ sub get_head { my $msg_id = shift; my $msg = $pop->top($msg_id); return $msg; } ############################ sub get_text { my $msg_id = shift; my $head_ref = &get_head($msg_id); my $msg = $pop->get($msg_id); for (@$head_ref){shift @$msg } # cut headers my $text = "@$msg";#$line=~s/<html>.*<\/html>/''/g; $text =~s{<([^>])+>|&([^;])+;}{}gsx; return $text; #for my $line ( @$msg ){print "\t$line"} }
|
|---|