Michael,

> ... To facilitate
> training I "quarantine" clean messages for 7 days along with all the
> others.  The problem I have, is in finding out which SpamAssassin rules a
> clean message actually triggered.  These show up in the headers of the
> delivered message, but not in the quarantined message nor anywhere in the
> database (that I can find).  Aside from going to the receiving user's
> mailbox and examining the delivered message, is there any way I can
> determine this?

Below is a patch to 2.4.4 which adds spam headers to quarantined mail
if spam score is at or above tag_level. Previously message needed to be
recognized as spammy or spam (tag2 or kill level) in order to receive
spam header fields in quarantine. This also makes it more consistent
with adding such header fields to passed mail.

  Mark

--- amavisd.orig        Mon Nov 20 18:35:40 2006
+++ amavisd     Fri Dec  1 17:45:02 2006
@@ -9223,5 +9223,6 @@
   my($newvirus_admin_maps_ref) =
      @virusname && !$virus_dejavu ? ca('newvirus_admin_maps') : undef;
-  my($blacklisted_any,$whitelisted_any,$do_tag2_any,$do_kill_any) = (0,0,0,0);
+  my($blacklisted_any,$whitelisted_any) = (0,0);
+  my($do_tag_any,$do_tag2_any,$do_kill_any) = (0,0,0);
   my($tag_level_min,$tag2_level_min,$kill_level_min,$boost_max);
   my($spam_level) = $msginfo->spam_level;
@@ -9230,5 +9231,5 @@
     my($rec) = $r->recip_addr;
     my($rec_ccat,$rec_ccat_min) = $r->main_contents_category;
-    my($bypassed,$tag_level,$tag2_level,$kill_level,$do_tag2,$do_kill);
+    my($bypassed,$tag_level,$tag2_level,$kill_level,$do_tag,$do_tag2,$do_kill);
     my($blacklisted) = $r->recip_blacklisted_sender;
     my($whitelisted) = $r->recip_whitelisted_sender;
@@ -9239,5 +9240,8 @@
            $rec_ccat, $rec_ccat_min, $ccat, $ccat_min, $rec)
            if $rec_ccat != $ccat || $rec_ccat_min != $ccat_min;
-    if ($rec_ccat == CC_SPAM || $rec_ccat == CC_SPAMMY) {
+    $do_tag  = $r->is_in_contents_category(CC_CLEAN,1);
+    $do_tag2 = $r->is_in_contents_category(CC_SPAMMY);
+    $do_kill = $r->is_in_contents_category(CC_SPAM);
+    if ($do_tag || $do_tag2 || $do_kill) {
       # do the more expensive lookups only when needed
       $bypassed   = lookup(0,$rec, @{ca('bypass_spam_checks_maps')});
@@ -9246,6 +9250,4 @@
       $kill_level = lookup(0,$rec, @{ca('spam_kill_level_maps')});
     }
-    $do_tag2 = $r->is_in_contents_category(CC_SPAMMY);
-    $do_kill = $r->is_in_contents_category(CC_SPAM);
     # summarize
     $blacklisted_any=1  if $blacklisted;
@@ -9259,5 +9261,5 @@
     $boost_max = $boost  if defined($boost) &&
                   (!defined($boost_max) || $boost > $boost_max);
-#   $do_tag_any  = 1  if $do_tag;
+    $do_tag_any  = 1  if $do_tag;
     $do_tag2_any = 1  if $do_tag2;
     $do_kill_any = 1  if $do_kill;
@@ -9345,6 +9347,5 @@
       $hdr_edits->add_header('X-Amavis-Alert', 'BAD HEADER '.$bad_headers[0]);
     }
-    if ($msginfo->is_in_contents_category(CC_SPAM) ||
-        $msginfo->is_in_contents_category(CC_SPAMMY)) {
+    if ($do_tag_any || $do_tag2_any || $do_kill_any) {
       $hdr_edits->add_header('X-Spam-Flag',
                              $do_tag2_any||$do_kill_any ? 'YES' : 'NO');



Mark

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
AMaViS-user mailing list
AMaViS-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amavis-user
AMaViS-FAQ:http://www.amavis.org/amavis-faq.php3
AMaViS-HowTos:http://www.amavis.org/howto/

Reply via email to