defined $pfx or return;
my %rv;
- foreach my $k (qw(mainrepo address)) {
+ foreach my $k (qw(mainrepo address filter)) {
my $v = $self->{"$pfx.$k"};
$rv{$k} = $v if defined $v;
}
$filtered = undef;
$filter->simple($msg);
- if (PublicInbox::Filter->run($msg, $filter)) {
+ my $filter_arg;
+ my $fcfg = $dst->{filter};
+ if (!defined $fcfg || $filter eq 'reject') {
+ $filter_arg = $filter;
+ } elsif ($fcfg eq 'scrub') {
+ $filter_arg = undef; # the default for legacy versions
+ } else {
+ warn "publicinbox.$dst->{listname}.filter=$fcfg invalid\n";
+ warn "must be either 'scrub' or 'reject' (the default)\n";
+ }
+
+ if (PublicInbox::Filter->run($msg, $filter_arg)) {
# run spamc again on the HTML-free message
if (do_spamc($msg, \$filtered)) {
$msg = Email::MIME->new(\$filtered);