You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by he...@apache.org on 2022/04/22 06:46:06 UTC

svn commit: r1900138 - /spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Bayes.pm

Author: hege
Date: Fri Apr 22 06:46:06 2022
New Revision: 1900138

URL: http://svn.apache.org/viewvc?rev=1900138&view=rev
Log:
- Tokenize From/To/Cc names (Bug 6319)
- Fix *MI *Ad *UA parsing, only last found header value was used, duh
- Improve logging

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Bayes.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Bayes.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Bayes.pm?rev=1900138&r1=1900137&r2=1900138&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Bayes.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Bayes.pm Fri Apr 22 06:46:06 2022
@@ -1450,17 +1450,29 @@ sub _tokenize_headers {
 
     if (MAP_HEADERS_MID) {
       if ($hdr =~ /^(?:In-Reply-To|References|Message-ID)$/i) {
-        $parsed{"*MI"} = $val;
+        if (exists $parsed{"*MI"}) {
+          $parsed{"*MI"} .= " ".$val;
+        } else {
+          $parsed{"*MI"} = $val;
+        }
       }
     }
     if (MAP_HEADERS_FROMTOCC) {
       if ($hdr =~ /^(?:From|To|Cc)$/i) {
-        $parsed{"*Ad"} = $val;
+        if (exists $parsed{"*Ad"}) {
+          $parsed{"*Ad"} .= " ".$val;
+        } else {
+          $parsed{"*Ad"} = $val;
+        }
       }
     }
     if (MAP_HEADERS_USERAGENT) {
       if ($hdr =~ /^(?:X-Mailer|User-Agent)$/i) {
-        $parsed{"*UA"} = $val;
+        if (exists $parsed{"*UA"}) {
+          $parsed{"*UA"} .= " ".$val;
+        } else {
+          $parsed{"*UA"} = $val;
+        }
       }
     }
 
@@ -1474,11 +1486,13 @@ sub _tokenize_headers {
     } else {
       $parsed{$hdr} = $val;
     }
-    if (would_log('dbg', 'bayes') > 1) {
+  }
+
+  if (would_log('dbg', 'bayes') > 1) {
+    foreach my $hdr (sort keys %parsed) {
       dbg("bayes: header tokens for $hdr = \"$parsed{$hdr}\"");
     }
   }
-
   return %parsed;
 }
 
@@ -1574,6 +1588,11 @@ sub _pre_chew_addr_header {
   my @addrs = Mail::SpamAssassin::Util::parse_header_addresses($val);
   my @toks;
   foreach my $addr (@addrs) {
+    if (defined $addr->{phrase}) {
+      foreach (split(/\s+/, $addr->{phrase})) {
+        push @toks, "N*".$_; # Bug 6319
+      }
+    }
     if (defined $addr->{address}) {
       push @toks, $self->_tokenize_mail_addrs($addr->{address});
     }