You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by fe...@apache.org on 2004/01/13 02:39:30 UTC

svn commit: rev 6147 - in incubator/spamassassin/trunk/lib/Mail/SpamAssassin: . MIME

Author: felicity
Date: Mon Jan 12 17:39:29 2004
New Revision: 6147

Modified:
   incubator/spamassassin/trunk/lib/Mail/SpamAssassin/MIME.pm
   incubator/spamassassin/trunk/lib/Mail/SpamAssassin/MIME/Parser.pm
Log:
more fixing of the parser


Modified: incubator/spamassassin/trunk/lib/Mail/SpamAssassin/MIME.pm
==============================================================================
--- incubator/spamassassin/trunk/lib/Mail/SpamAssassin/MIME.pm	(original)
+++ incubator/spamassassin/trunk/lib/Mail/SpamAssassin/MIME.pm	Mon Jan 12 17:39:29 2004
@@ -149,6 +149,8 @@
     $part->{$k} = $v;
   }
 
+  dbg("added part, type: $type");
+
   # Add the part to body_parts
   push @{ $self->{body_parts} }, $part;
 }

Modified: incubator/spamassassin/trunk/lib/Mail/SpamAssassin/MIME/Parser.pm
==============================================================================
--- incubator/spamassassin/trunk/lib/Mail/SpamAssassin/MIME/Parser.pm	(original)
+++ incubator/spamassassin/trunk/lib/Mail/SpamAssassin/MIME/Parser.pm	Mon Jan 12 17:39:29 2004
@@ -86,6 +86,13 @@
     $msg->header('content-type') =~ /boundary\s*=\s*["']?([^"';]+)["']?/i;
   $self->_parse_body( $msg, $msg, $boundary, \@message, 1 );
 
+  unless ( $msg->{'type'} ) {
+    $msg->{'type'} = $msg->header('content-type');
+    $msg->{'type'} ||= 'text/plain';
+    $msg->{'type'} =~ s/;.*$//;            # strip everything after first semi-colon
+    $msg->{'type'} =~ s/[^a-zA-Z\/]//g;    # strip inappropriate chars
+  }
+
   return $msg;
 }
 
@@ -112,12 +119,11 @@
   elsif ( $type =~ /^multipart\/alternative/i ) {
     dbg("Parse multipart/alternative");
     if ( $initial ) {
-      $self->_parse_multipart_mixed( $msg, $_msg, $boundary, $body );
+      $self->_parse_multipart_alternate( $msg, $_msg, $boundary, $body );
     }
     else {
-      my $part_msg = Mail::SpamAssassin::MIME->new();
-      $self->_parse_multipart_alternate( $part_msg, $_msg, $boundary, $body );
-      $msg->add_body_part( $type, { "mime-parts" => $part_msg, } );
+      $self->_parse_multipart_alternate( $_msg, $_msg, $boundary, $body );
+      $msg->add_body_part( $type, $_msg );
     }
   }
   elsif ( $type =~ /^multipart\//i ) {
@@ -126,9 +132,8 @@
       $self->_parse_multipart_mixed( $msg, $_msg, $boundary, $body );
     }
     else {
-      my $part_msg = Mail::SpamAssassin::MIME->new();
-      $self->_parse_multipart_mixed( $part_msg, $_msg, $boundary, $body );
-      $msg->add_body_part( $type, { "mime-parts" => $part_msg, } );
+      $self->_parse_multipart_mixed( $_msg, $_msg, $boundary, $body );
+      $msg->add_body_part( $type, $_msg );
     }
   }
   else {