use FindBin;
$0 = $FindBin::Script;
-use lib $FindBin::Bin;
+use lib "$FindBin::Bin/../lib";
use MAPS;
use MAPSWeb;
my $msg_nbr = param('msg_nbr');
my $table_name = 'message';
-sub ParseEmail (@) {
+sub ParseEmail(@) {
my (@header) = @_;
my %header;
# First output the header information. Note we'll skip uninteresting stuff
- foreach (@header) {
+ for (@header) {
last if ($_ eq '' || $_ eq "\cM");
# Escape "<" and ">"
} elsif (/^Content-Transfer-Encoding: base64/) {
$header{base64} = 1;
} # if
- } # while
+ } # for
return %header;
} # ParseEmail
-sub Body ($) {
+sub Body($) {
my ($count) = @_;
$count ||= 1;
($userid, $sender, $subject, $timestamp, $message) = GetEmail $handle;
} # for
- my $parser = new MIME::Parser;
+ my $parser = MIME::Parser->new();
$parser->output_to_core (1);
my @parts = $entity->parts;
if (scalar @parts == 0) {
- if (${$entity->{mail_inet_head}{mail_hdr_hash}{'Content-Transfer-Encoding'}[0]} =~ /base64/) {
+ if ($entity->{mail_inet_head}{mail_hdr_hash}{'Content-Transfer-Encoding'} and
+ ${$entity->{mail_inet_head}{mail_hdr_hash}{'Content-Transfer-Encoding'}[0]} =~ /base64/) {
print $entity->{ME_Bodyhandle}{MBS_Data};
} else {
print '<pre>';
print '</pre>';
} # if
} else {
- foreach my $part ($entity->parts) {
+ for my $part ($entity->parts) {
# We assume here that if this part is multipart/alternative then
# there exists at least one part that is text/html and we favor
# that (since we're outputing to a web page anyway...
if ($part->mime_type eq 'multipart/alternative') {
- foreach my $subpart ($part->parts) {
+ for my $subpart ($part->parts) {
if ($subpart->mime_type eq 'text/html') {
# There should be an easier way to get this but I couldn't find one.
my $encoding = ${$subpart->{mail_inet_head}{mail_hdr_hash}{'Content-Transfer-Encoding'}[0]};
$subpart->print_body;
last;
} # if
- } # foreach
+ } # for
+ } elsif ($part->mime_type eq 'multipart/related') {
+ # Sometimes parts are 'multipart/relative'...
+ $part->print_body;
} else {
if ($part->mime_type =~ /text/) {
- print '<pre>';
- $part->print_body;
- print '</pre>';
+ my $encoding = '';
+
+ $encoding = ${$part->{mail_inet_head}{mail_hdr_hash}{'Content-Transfer-Encoding'}[0]}
+ if $part->{mail_inet_head}{mail_hdr_hash}{'Content-Transfer-Encoding'};
+
+ if ($encoding =~ /base64/) {
+ $part->bodyhandle->print();
+ } else {
+ print '<pre>';
+ $part->print_body;
+ print '</pre>';
+ } # if
} # if
} # if
- } # foreach
+ } # for
} # if
print "</td></tr>\n";
print end_table;
} # Body
-$userid = Heading (
+$userid = Heading(
'getcookie',
'',
"Email message from $sender",
$table_name,
);
-SetContext $userid;
-NavigationBar $userid;
+SetContext($userid);
+NavigationBar($userid);
-Body $msg_nbr;
+Body($msg_nbr);
-Footing $table_name;
+Footing($table_name);