#!/usr/bin/perl ## ## (Al)ex (Ma)il Reader - Alma ## Web POP3 client ## (c) Alex Bacik 2006 ## use strict; use CGI; use Switch; use Net::POP3; my $url = "https://www.bacik.org/cgi-bin/alma.pl"; my $dir = "/var/www/https.www.bacik.org/htdocs/alma"; my $cgi = new CGI; my $action = $cgi->param('action'); my $pop; print $cgi->header(); &WritePage ("header.txt"); my $username = $cgi->param('username'); my $password = $cgi->param('password'); my $server = $cgi->param('server'); my $msgcount = &LogOn ($username, $password, $server); switch ($action) { case "List" { print "There are $msgcount messages waiting.

\n"; &WritePage ("list_head.txt"); foreach my $msg_id (1 .. $msgcount) { my $header = $pop->top ($msg_id, 0); my ($subject, $from, $status) = &AnalyseHeader ($header); print "\n$msg_id"; print "$from$subject$status\n\n"; } &WritePage ("list_foot.txt"); } case "Delete" { my @messages = $cgi->param('messages'); print "Deleteing ", $#messages + 1, " messages: "; foreach (@messages) { print "$_ "; $pop->delete ($_); } &WritePage ("list.txt"); } case "Read" { my @messages = $cgi->param('messages'); print "Reading @messages

\n"; print "


\n
\n"; foreach (@messages) { print "Message $_
\n";
      my $msg = $pop->get($_);
      print @$msg;
      print "
\n
\n
\n"; } &WritePage ("list.txt"); } else { &WritePage ("login.txt"); } } $pop->quit if ($action); &WritePage ("footer.txt"); exit (1); ######################### sub Bail { print "$_[0]\n"; &WritePage ("login.txt"); &WritePage ("footer.txt"); $pop->quit if ($action); exit (0); } sub WritePage { open (TEMPLATE, "$dir/templates/$_[0]") or &Bail ("Can't open $dir/templates/$_[0]: $!"); local ($/) = undef; my ($template) =