#!/usr/bin/perl $inheaders=0; $inbody=0; $date=""; $from=""; %header=(); @headers=(); @body=(); if ($ARGV[0] eq "-v") { $verbose=1; } else { $verbose=0; } while (<>) { chomp; if (/^$/) { print(STDERR "//In Headers...\n") if ($verbose); $inheaders=1; next; } if (/^$/) { print(STDERR "\\\\Out Of Headers...\n") if ($verbose); $inheaders=0; next; } if (/^$/) { print(STDERR "//In Body...\n") if ($verbose); $inbody=1; next; } if (/^$/) { print(STDERR "\\\\Out Of Body...\n") if ($verbose); $inbody=0; print "From $from $date\n"; foreach $h (@headers) { print $h; } #print "\n"; foreach $b (@body) { print $b; } # reset %header=(); @headers=(); @body=(); next; } if ($inheaders && /^$/) { print(STDERR " $_\n") if ($verbose); $n=$1; $h=$2; $h =~ s/&#(\d+);/chr($1)/eg; $h =~ s/>/>/g; $h =~ s/<//g; } push(@headers,"$n: $h\n"); $header{$n}=$h; if ($n eq "From") { $h =~ s/\s*\(.*?\)\s*//g; $h =~ s/^.*<([^<>]+?)>.*$/$1/g; $from = $h; } if ($n eq "Date") { $h =~ /^([A-Z][a-z][a-z]), ([0-9 ][0-9]) ([A-Z][a-z][a-z]) (\d+) (\d\d:\d\d:\d\d)/; $date = "$1 $3 $2 $5 $4"; } next; } if ($inbody) { print(STDERR " $_\n") if ($verbose); s/<.*?>//g; s/&#(\d+);/chr($1)/eg; s/>/>/g; s/</