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/