X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=script%2Fpublic-inbox-mda;h=766d58a6f4c22cd97ca91a9fda6dc7bd421d8bca;hb=be4d92e74dd0b1c8de85bc08c3c522af2d8d8656;hp=8b5258f5f397e31bf229ebecf5e1abaf066b7171;hpb=6cf4ed00cfe766141572511d4ab2016cd6dafe46;p=public-inbox.git diff --git a/script/public-inbox-mda b/script/public-inbox-mda index 8b5258f5..766d58a6 100755 --- a/script/public-inbox-mda +++ b/script/public-inbox-mda @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# Copyright (C) 2013-2015 all contributors -# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt) +# Copyright (C) 2013-2018 all contributors +# License: AGPL-3.0+ # # Mail delivery agent for public-inbox, run from your MTA upon mail delivery use strict; @@ -15,9 +15,7 @@ sub do_exit { } use Email::Simple; -use Email::MIME; -use Email::MIME::ContentType; -$Email::MIME::ContentType::STRICT_PARAMS = 0; # user input is imperfect +use PublicInbox::MIME; use PublicInbox::MDA; use PublicInbox::Config; use PublicInbox::Import; @@ -52,7 +50,7 @@ $simple = undef; $emm = PublicInbox::Emergency->new($emergency); $emm->prepare(\$str); $ems = $ems->abort; -my $mime = Email::MIME->new(\$str); +my $mime = PublicInbox::MIME->new(\$str); $str = ''; do_exit(0) unless $spam_ok; @@ -80,8 +78,18 @@ if (ref($ret) && $ret->isa('Email::MIME')) { # filter altered message } # else { accept PublicInbox::MDA->set_list_headers($mime, $dst); -my $git = PublicInbox::Git->new($main_repo); -my $im = PublicInbox::Import->new($git, $dst->{name}, $recipient); +my $v = $dst->{version} || 1; +my $im; +if ($v == 2) { + require PublicInbox::V2Writable; + $im = PublicInbox::V2Writable->new($dst); + $im->{parallel} = 0; # pointless to be parallel for a single message +} elsif ($v == 1) { + my $git = $dst->git; + $im = PublicInbox::Import->new($git, $dst->{name}, $recipient, $dst); +} else { + die "Unsupported inbox version: $v\n"; +} if (defined $im->add($mime)) { $emm = $emm->abort; } else {