#!/usr/bin/perl

use Env qw(MAIL);

@days = (Sun,Mon,Tue,Wed,Thu,Fri,Sat);
@months = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec);
%mons = (Jan,"01",Feb,"02",Mar,"03",Apr,"04",May,"05",Jun,"06",
         Jul,"07",Aug,"08",Sep,"09",Oct,"10",Nov,"11",Dec,"12");

$inbox = $MAIL;

$| = 1;
$/ = '';		# read by paragraphs


format STDOUT =
 @> | @>>>>>>>>>>>>>>>>>>>>>>> | @ | @<<<<<<<<<<<<<<<<<<<<<<<<<< | @<<<<<<<<
 $count, $from, $status, $headers{'subject'}, $date
.


open(MAIL,"$inbox") || die "$exe: can't open inbox\n";

while (<MAIL>) {

	# Match headers that we need
   if (/^From / && /\nReceived:/ && /\nMessage-id:/i) {
      $count++;
      %headers=();
      $plus = $status = $temp = $date = '';


		($from,$mon,$mday,$time,$year)
			= (/^From (\S*) \w{3} (\w{3}) (\d+) (\d\d:\d\d:\d\d) (\d\d\d\d)/);

		$year = substr($year,2,4);
		$date = $mons{$mon}."/".$mday."/".$year;

		$from = (split(/\s+/,$_))[1];

		foreach $line (split(/\n/,$_)) {
			($header,$value) = split(/:/,$line,2);		# grab header value
			$value =~ s/^\s+|\s+$//g;						 
			$header =~ y/A-Z/a-z/;
			$headers{$header} = $value;					# slap into hash
		}

		# from
		$temp = (split(/<|>/,$headers{'from'}))[1] unless $temp;
		$from = $temp if $temp;
		$from .= "\@" unless ($from =~ /\@/);

		# status.  yay
		$status = "N" unless ($headers{'status'} =~ /R/);
		$status = "A" if ($headers{'x-status'} =~ /A/);
		$status = "I" if ($headers{'x-status'} =~ /F/);
		$status = "I" if ($headers{'priority'} eq "urgent");
		$status = " " if ($status eq "");

		$headers{'subject'} = "(No Subject)" unless $headers{'subject'};
		$plus = '+' if ($headers{'to'} =~ /$name/);

		write;
		$found = "yes";

	}
}

close(MAIL);

print "No mail." unless $found;	

      

