]> Sergey Matveev's repositories - public-inbox.git/blobdiff - script/public-inbox-learn
script/*{mda,learn}: no strict params for Email::MIME::ContentType
[public-inbox.git] / script / public-inbox-learn
index 0af1e94c4a3e2b9ac269feb99be0a0e453597601..bfbf023363295f15ce95d40bd2de79a3294a2c76 100755 (executable)
@@ -11,7 +11,9 @@ use PublicInbox::Config;
 use PublicInbox::Git;
 use PublicInbox::Import;
 use Email::MIME;
-use Email::Address;
+use Email::MIME::ContentType;
+$Email::MIME::ContentType::STRICT_PARAMS = 0; # user input is imperfect
+use PublicInbox::Address;
 use IPC::Run qw/run/;
 my $train = shift or die "usage: $usage\n";
 if ($train !~ /\A(?:ham|spam)\z/) {
@@ -29,8 +31,9 @@ my $mime = Email::MIME->new(eval {
 # get all recipients
 my %dests;
 foreach my $h (qw(Cc To)) {
-       foreach my $recipient (Email::Address->parse($mime->header($h))) {
-               $dests{lc($recipient->address)} = 1;
+       my $val = $mime->header($h) or next;
+       foreach my $email (PublicInbox::Address::emails($val)) {
+               $dests{lc($email)} = 1;
        }
 }
 
@@ -51,7 +54,7 @@ foreach my $recipient (keys %dests) {
        my $git = PublicInbox::Git->new($git_dir);
        # We do not touch GIT_COMMITTER_* env here so we can track
        # who trained the message.
-       my $name = $ENV{GIT_COMMITTER_NAME} || $dst->{listname};
+       my $name = $ENV{GIT_COMMITTER_NAME} || $dst->{inbox};
        my $email = $ENV{GIT_COMMITTER_EMAIL} || $recipient;
        my $im = PublicInbox::Import->new($git, $name, $email);