about summary refs log tree commit homepage
path: root/lib/PublicInbox/Import.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2016-06-24 01:15:16 +0000
committerEric Wong <e@80x24.org>2016-06-24 07:03:47 +0000
commit40782735e74e427997b5b900d60cc07597e330c3 (patch)
treec2131a869e83df2173eda00cdfee988d48594b67 /lib/PublicInbox/Import.pm
parentf881729b5654a707cbc22dd0a386b3cbdff68d83 (diff)
downloadpublic-inbox-40782735e74e427997b5b900d60cc07597e330c3.tar.gz
Mailing lists I watch and mirror may not have the best spam
filtering, and an extra layer should not hurt.
Diffstat (limited to 'lib/PublicInbox/Import.pm')
-rw-r--r--lib/PublicInbox/Import.pm6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/PublicInbox/Import.pm b/lib/PublicInbox/Import.pm
index 5ffc26ef..27f36a7e 100644
--- a/lib/PublicInbox/Import.pm
+++ b/lib/PublicInbox/Import.pm
@@ -140,7 +140,7 @@ sub remove {
 
 # returns undef on duplicate
 sub add {
-        my ($self, $mime) = @_; # mime = Email::MIME
+        my ($self, $mime, $check_cb) = @_; # mime = Email::MIME
 
         my $from = $mime->header('From');
         my ($email) = ($from =~ /([^<\s]+\@[^>\s]+)/g);
@@ -170,6 +170,10 @@ sub add {
 
         # kill potentially confusing/misleading headers
         $mime->header_set($_) for qw(bytes lines content-length status);
+        if ($check_cb) {
+                $mime = $check_cb->($mime) or return;
+        }
+
         $mime = $mime->as_string;
         my $blob = $self->{mark}++;
         print $w "blob\nmark :$blob\ndata ", length($mime), "\n" or wfail;