lib/PublicInbox/Mbox.pm | 7 ++++--- diff --git a/lib/PublicInbox/Mbox.pm b/lib/PublicInbox/Mbox.pm index 381bcadad85893bb5b034911a62f374dcadbf6ec..1b68f027157fc0d6b87f97724cdb0eece696fcea 100644 --- a/lib/PublicInbox/Mbox.pm +++ b/lib/PublicInbox/Mbox.pm @@ -92,7 +92,7 @@ [ 200, \@hdr, $more ? mb_stream($more) : [ msg_str($ctx, $first) ] ]; } sub msg_str { - my ($ctx, $simple) = @_; # Email::Simple object + my ($ctx, $simple, $mid) = @_; # Email::Simple object my $header_obj = $simple->header_obj; # drop potentially confusing headers, ssoma already should've dropped @@ -102,7 +102,7 @@ $header_obj->header_set($d); } my $ibx = $ctx->{-inbox}; my $base = $ibx->base_url($ctx->{env}); - my $mid = mid_clean($header_obj->header('Message-ID')); + $mid = $ctx->{mid} unless defined $mid; $mid = mid_escape($mid); my @append = ( 'Archived-At', "<$base$mid/>", @@ -225,7 +225,8 @@ # work on existing result set while (defined(my $smsg = shift @{$self->{msgs}})) { my $msg = eval { $ibx->msg_by_smsg($smsg) } or next; $msg = Email::Simple->new($msg); - $gz->write(PublicInbox::Mbox::msg_str($ctx, $msg)); + $gz->write(PublicInbox::Mbox::msg_str($ctx, $msg, + $smsg->mid)); # use subject of first message as subject if (my $hdr = delete $self->{hdr}) {