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

Reply via email to