lib/PublicInbox/LeiToMail.pm | 12 +++++++----- diff --git a/lib/PublicInbox/LeiToMail.pm b/lib/PublicInbox/LeiToMail.pm index 4ebaf8f347371d661e4473329ab3ef4dc23dd8e3..daa8084b13faa3c54aa66b4922a4cbfa922a82b3 100644 --- a/lib/PublicInbox/LeiToMail.pm +++ b/lib/PublicInbox/LeiToMail.pm @@ -335,14 +335,16 @@ $self->can("eml2$fmt") or die "bad mbox format: $fmt\n"; $self->{base_type} = 'mbox'; } elsif ($fmt =~ /\Aimaps?\z/) { # TODO .onion support require PublicInbox::NetWriter; + require PublicInbox::URIimap; my $net = PublicInbox::NetWriter->new; - $net->add_url($dst); $net->{quiet} = $lei->{opt}->{quiet}; - my $err = $net->errors($dst); + my $uri = PublicInbox::URIimap->new($dst)->canonical; + $net->add_url($uri); + my $err = $net->errors; return $lei->fail($err) if $err; - require PublicInbox::URIimap; # TODO: URI cast early - $self->{uri} = PublicInbox::URIimap->new($dst); - $self->{uri}->mailbox or die "No mailbox: $dst"; + $uri->mailbox or return $lei->fail("No mailbox: $dst"); + $self->{uri} = $uri; + $dst = $lei->{ovv}->{dst} = $$uri; # canonicalized $lei->{net} = $net; $self->{base_type} = 'imap'; } else {