OK, this isn't something that everyone will be able to use, but it works nicely for me.
I'm using the courier maildrop LDA. I deliver messages to one recipient at a time. In maildrop, I've added this: # Stick the final recipient into the headers exception { xfilter "/usr/local/bin/reformail -i'X-Delivered-To: $LOGNAME'" } reformail is a mail-mangling tool. $LOGNAME is a maildrop variable that expands to the destination mailbox address. (Note: procmail's LOGNAME is different ...) So, I'm stamping messages, as they are delivered, with the final recipient. This is OK because there isn't any envelope-recipient bleed-through - Bcc'd folks don't see who else received the message. Anyway, now that I have the envelope recipient available in the message, I've added a new test to EvalTests.pm: sub check_if_listed_recipient { my ($self) = @_; my $deliveredto = $self->get ('X-Delivered-To:addr'); my $to = $self->get ('To'); my $cc = $self->get ('Cc'); if ($deliveredto eq '') { return 0; } if (($to =~ /${deliveredto}/i) || ($cc =~ /${deliveredto}/i)) { return 0; } return 1; } And I've added these to my prefs: header NOT_IN_TO_OR_CC eval:check_if_listed_recipient() describe NOT_IN_TO_OR_CC Not listed in To or Cc headers score NOT_IN_TO_OR_CC 1.70 The 1.70 is completely arbitrary. :-) So far, I'm really happy with this. And it was way easier to stuff the envelope recipient into the headers than it would be to teach spamc/spamd to pass those on the command line. -- Charlie Watts [EMAIL PROTECTED] Frontier Internet, Inc. http://www.frontier.net/ _______________________________________________ Spamassassin-talk mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/spamassassin-talk