Hello, I just release a patch for "Mail-SpamAssassin-2.11", Just fix the mime multi-part process question. Hope anybody can help me test it, Check is it work. In the origin SpamAssassin-2.11, It can't handle the multi-part mail send the outlook express, and Can't handle the line break with "\n" but not "\r\n", for this reason, I release this patch. ------start cut next line-------------------------------------------- diff -Naur origin/Mail-SpamAssassin-2.11/lib/Mail/SpamAssassin/PerMsgStatus.pm new/Mail-SpamAssassin-2.11/lib/Mail/SpamAssassin/PerMsgStatus.pm --- origin/Mail-SpamAssassin-2.11/lib/Mail/SpamAssassin/PerMsgStatus.pm Mon Mar 4 09:17:35 2002 +++ new/Mail-SpamAssassin-2.11/lib/Mail/SpamAssassin/PerMsgStatus.pm Sat Mar 16 +10:49:56 2002 @@ -658,18 +658,35 @@ my $bodytext = $self->get_decoded_body_text_array(); my $text = ''; + my $tmptext = ''; my $lastwasmime = 0; + my $notfirstenter = 0; foreach $_ (@{$bodytext}) { /^SPAM: / and next; # SpamAssassin markup /^--/ and $lastwasmime=1 and next; # MIME bits if ($lastwasmime) { /^$/ and $lastwasmime=0; + if (!$lastwasmime) { + if ($notfirstenter) { + $text .= MIME::Base64::decode_base64($tmptext); + } else { + $notfirstenter = 1; + $text .= $tmptext; + } + $tmptext = ''; + } /Content-.*: / and next; /^\s/ and next; } - $text .= $_; + $tmptext .= $_; + } + + if ($notfirstenter) { + $text .= MIME::Base64::decode_base64($tmptext); + } else { + $text .= $tmptext; } $text =~ s/=\r?\n//gis; # QP line endings diff -Naur origin/Mail-SpamAssassin-2.11/spamproxy/spamproxyd.raw new/Mail-SpamAssassin-2.11/spamproxy/spamproxyd.raw --- origin/Mail-SpamAssassin-2.11/spamproxy/spamproxyd.raw Fri Mar 1 05:07:21 2002 +++ new/Mail-SpamAssassin-2.11/spamproxy/spamproxyd.raw Sat Mar 16 09:41:03 2002 @@ -141,8 +141,9 @@ # --irj $message = $client->{MSG}; - @msg = split ("\r\n", $message); - $arraycont = @msg; for(0..$arraycont) { $msg[$_] .= "\r\n"; } + $message =~ s/\r//gis; + @msg = split ("\n", $message); + $arraycont = @msg; for(0..$arraycont) { $msg[$_] .= "\n"; } %args = (data => \@msg); $mail = Mail::SpamAssassin::NoMailAudit->new(%args); -----stop cut here------------------------------------------------------ . ------- Floatboat Chen ============== http://www.linuxaid.com.cn http://www.linuxaid.com.cn/forum Jjȧdx%RƬ)jY%lqzm?X(~zwXb?jȧd