Chris, Richard,

> I am trying to do the same thing as Richard and seeing similar results.
> When I detect a custom 'spam' header, I set the option to
> bypass_spam_checks using the code sample you provided, but I think that if
> spam checks are completely bypassed, then so are all of the actions that
> can be taken as a result of detecting spam.  Setting CC_SPAM doesn't seem
> to have any effect if bypass_spam_checks is set.

I don't know, it does work here, so there must be something different
between our setups.

>From a Richard's log the key entry is:

Jul 29 16:17:39 mxt2 amavis[28334]: (28334-02) do_notify_and_quar:
  ccat=Clean (1,0) ("1":Clean, "0":CatchAll, "0":CatchAll) ccat_block=(),
  q_mth=, qar_mth=

which indicates the contents category CC_SPAM (=6) was not set.

My log shows:

Jul 31 17:59:49. ... amavisd[75930]: (75930-01) do_notify_and_quar:
  ccat=Spam (6,0) ("6":Spam, "1":Clean, "0":CatchAll) ccat_block=(),
  q_mth=local:W%P/spam/%m.gz, qar_mth=local:archive/%m.gz

So my primary suspect was that the custom hook didn't do anything,
although Richard assured the regexp matched (regarding space
after a colon).

I'd like to first see that the custom hook did what it was supposed
to do. Perhaps adding a log entry there could help us move forward:

package Amavis::Custom;
use strict;

BEGIN {
  import Amavis::Conf qw(:platform :confvars c cr ca);
  import Amavis::Util qw(do_log);
}

# invoked at child process creation time;
# return an object, or just undef when custom checks are not needed
sub new {
  my($class,$conn,$msginfo) = @_;
  my($self) = bless {}, $class;
  my($subj) = $msginfo->get_header_field_body('subject');
  do_log(2, "CUSTOM1 (magicspam), subj=%s", $subj);
  if ($subj =~ /^[ \t]*\*\*SomeMagicSpamTag\*\*/) {
    do_log(2, "CUSTOM2 (magicspam) YES");
    $msginfo->spam_report("Upstream MTA labeled message as spam");  # header
    $msginfo->spam_summary("Upstream MTA labeled message as spam"); # multiline
    $msginfo->add_contents_category(CC_SPAM,0);
    for my $r (@{$msginfo->per_recip_data}) {
      $r->add_contents_category(CC_SPAM,0);
      $r->bypass_spam_checks(1);
    }
  }
  $self;  # returning an object activates further callbacks,
          # returning undef disables them
}
1;  # insure a defined return



Hmmm, now I see why Richard has commented-out the "use strict",
this masked the problem - the CC_SPAM was not declared in the
Amavis::Custom module!

  Mark

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
AMaViS-user mailing list
[email protected]
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