X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;f=maps%2Fbin%2Fdisplay.cgi;h=533ecae8eb94911ae4a6606fc2a8d8b59a732733;hb=6ee4bd4718471ce8ba4a8416a0bee09b082e0f13;hp=76f5ab6fef6f541c65aba432c9ad920f9c502e79;hpb=447c849fd507a59596617bec83358d82e4cf7736;p=clearscm.git diff --git a/maps/bin/display.cgi b/maps/bin/display.cgi index 76f5ab6..533ecae 100755 --- a/maps/bin/display.cgi +++ b/maps/bin/display.cgi @@ -32,7 +32,12 @@ use MIME::Words qw(:all); my $userid = cookie('MAPSUser'); my $sender = param('sender'); -my $msg_nbr = param('msg_nbr'); + +# CGI will replace '+' with ' ', which many mailers are starting to do, +# so add it back +$sender =~ s/ /\+/; + +my $msg_date = param('msg_date'); my $table_name = 'message'; sub ParseEmail(@) { @@ -65,22 +70,19 @@ sub ParseEmail(@) { } # ParseEmail sub Body($) { - my ($count) = @_; + my ($date) = @_; - $count ||= 1; + # Find unique message using $date + my $handle = FindEmail $sender, $date; - my $handle = FindEmail $sender; - - my ($userid, $sender, $subject, $timestamp, $message); - - # Need to handle multiple messages - for (my $i = 0; $i < $count; $i++) { - ($userid, $sender, $subject, $timestamp, $message) = GetEmail $handle; - } # for + my ($userid, $sender, $subject, $timestamp, $message) = GetEmail $handle; my $parser = MIME::Parser->new(); - $parser->output_to_core (1); + # For some strange reason MIME::Parser has started having some problems + # with writing out tmp files... + $parser->output_to_core(1); + $parser->tmp_to_core(1); my $entity = $parser->parse_data ($message); @@ -107,10 +109,10 @@ sub Body($) { -bgcolor => "#ece9d8", -width => "100%"}) . "\n"; - foreach (keys (%header)) { + for (keys (%header)) { next if /base64/; - my $str = decode_mimewords ($header{$_}); + my $str = decode_mimewords($header{$_}); print Tr ([ th ({-align => "right", @@ -118,7 +120,7 @@ sub Body($) { -width => "8%"}, "$_:") . "\n" . td ({-bgcolor => "white"}, $str) ]); - } # if + } # for print end_table; print ""; @@ -174,7 +176,7 @@ sub Body($) { } # for } elsif ($part->mime_type eq 'multipart/related') { # Sometimes parts are 'multipart/relative'... - $part->print_body; + $part->print_body; } else { if ($part->mime_type =~ /text/) { my $encoding = ''; @@ -213,6 +215,6 @@ $userid = Heading( SetContext($userid); NavigationBar($userid); -Body($msg_nbr); +Body($msg_date); Footing($table_name);