+# for rare cases where v1 inboxes aren't indexed w/ ->over at all
+sub no_over_raw ($) {
+ my ($ctx) = @_;
+ my $mref = $ctx->{ibx}->msg_by_mid($ctx->{mid}) or return;
+ my $eml = PublicInbox::Eml->new($mref);
+ [ 200, res_hdr($ctx, $eml->header_str('Subject')),
+ [ msg_hdr($ctx, $eml) . msg_body($eml) ] ]
+}
+
+# /$INBOX/$MESSAGE_ID/raw
+sub emit_raw {
+ my ($ctx) = @_;
+ $ctx->{base_url} = $ctx->{ibx}->base_url($ctx->{env});
+ my $over = $ctx->{ibx}->over or return no_over_raw($ctx);
+ my ($id, $prev);
+ my $mip = $ctx->{next_arg} = [ $ctx->{mid}, \$id, \$prev ];
+ my $smsg = $ctx->{smsg} = $over->next_by_mid(@$mip) or return;
+ my $res_hdr = res_hdr($ctx, $smsg->{subject});
+ bless $ctx, __PACKAGE__;
+ $ctx->psgi_response(200, $res_hdr);
+}
+
+sub msg_hdr ($$) {
+ my ($ctx, $eml) = @_;
+ my $header_obj = $eml->header_obj;