From d1525c3b35e9aa1bb14143996a7fa2b6e34cba3e Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 28 Oct 2019 10:45:20 +0000 Subject: mda: hoist out List-ID handling and reuse in -learn It's now possible to inject false-positive ham into an inbox the same way -mda does via List-ID. --- script/public-inbox-learn | 8 +++++++- script/public-inbox-mda | 5 +---- 2 files changed, 8 insertions(+), 5 deletions(-) mode change 100755 => 100644 script/public-inbox-learn (limited to 'script') diff --git a/script/public-inbox-learn b/script/public-inbox-learn old mode 100755 new mode 100644 index 56739f88..79f3ead5 --- a/script/public-inbox-learn +++ b/script/public-inbox-learn @@ -77,7 +77,7 @@ if ($train eq 'spam') { $im->done; }); } else { - require PublicInbox::MDA if $train eq "ham"; + require PublicInbox::MDA; # get all recipients my %dests; # address => @@ -89,10 +89,16 @@ if ($train eq 'spam') { } # n.b. message may be cross-posted to multiple public-inboxes + my %seen; while (my ($addr, $ibx) = each %dests) { next unless ref($ibx); # $ibx may be 0 + next if $seen{"$ibx"}++; remove_or_add($ibx, $train, $addr); } + my $ibx = PublicInbox::MDA->inbox_for_list_id($pi_config, $mime); + if ($ibx && !$seen{"$ibx"}) { + remove_or_add($ibx, $train, $ibx->{-primary_address}); + } } if ($err) { diff --git a/script/public-inbox-mda b/script/public-inbox-mda index 584218b5..3ff318c9 100755 --- a/script/public-inbox-mda +++ b/script/public-inbox-mda @@ -43,10 +43,7 @@ if (defined $recipient) { $dst = $config->lookup($recipient); # first check } if (!defined $dst) { - my $list_id = $simple->header('List-Id'); - if (defined $list_id && $list_id =~ /<[ \t]*(.+)?[ \t]*>/) { - $dst = $config->lookup_list_id($1); - } + $dst = PublicInbox::MDA->inbox_for_list_id($config, $simple); if (!defined $dst && !defined $recipient) { die "ORIGINAL_RECIPIENT not defined in ENV\n"; } -- cgit v1.2.3-24-ge0c7