Ignore:
Timestamp:
2001-07-31T15:14:42+12:00 (23 years ago)
Author:
jrm21
Message:

fixed a few more minor MIME header parsing cases.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/perllib/plugins/EMAILPlug.pm

    r2680 r2681  
    327327    # RFC says boundary is <70 chars, [A-Za-z'()+_,-./:=?], so escape any
    328328    # that perl might want to interpolate. Also allows spaces...
    329 
    330329    $boundary=~s/\\/\\\\/g;
    331330    $boundary=~s/([\?\+\.\(\)\:\/\'])/\\$1/g;
    332     my @message_parts = split("\r?\n\-\-$boundary", $text);
     331    my @message_parts = split("\r?\n\-\-$boundary", "\n$text");
    333332    # remove first "part" and last "part" (final --)
    334333    shift @message_parts;
     
    382381        my $part_header=$message_part;
    383382        my $part_body;
    384         if ($part_header=~s/\r?\n\r?\n(.*)$//sg) {
    385             $part_body=$1;
    386         } else {
     383        if ($message_part=~ /^\s*\n/) {
    387384            # no header... use defaults
    388385            $part_body=$message_part;
    389386            $part_header="Content-type: text/plain; charset=us-ascii";
    390         }
     387        } elsif ($part_header=~s/\r?\n\r?\n(.*)$//sg) {
     388            $part_body=$1;
     389        } else {
     390            # something's gone wrong...
     391            $part_header="";
     392            $part_body=$message_part;
     393        }
     394       
    391395        $part_header =~ s/\r?\n[\t\ ]+/ /gs; #unfold
    392396        my $part_content_type="";
     
    506510    my $text=shift;
    507511    my $part_header=$text;
    508     $part_header =~ s/\r?\n\r?\n(.*)$//s;
    509     $text=$1; if (!defined($text)) {$text="";}
     512    # check for empty part header (leading blank line)
     513    if ($text =~ /^\s*\r?\n/) {
     514    $part_header="Content-type: text/plain; charset=us-ascii";
     515    } else {
     516    $part_header =~ s/\r?\n\r?\n(.*)$//s;
     517    $text=$1; if (!defined($text)) {$text="";}
     518    }
    510519    $part_header =~ s/\r?\n[\t ]+/ /gs; #unfold
    511520    $part_header =~ /content\-type:\s*([\w\/]+)/is;
Note: See TracChangeset for help on using the changeset viewer.