diff options
-rw-r--r-- | lib/PublicInbox/Filter.pm | 5 | ||||
-rw-r--r-- | t/filter.t | 20 |
2 files changed, 24 insertions, 1 deletions
diff --git a/lib/PublicInbox/Filter.pm b/lib/PublicInbox/Filter.pm index 6cccd930..a83ecc83 100644 --- a/lib/PublicInbox/Filter.pm +++ b/lib/PublicInbox/Filter.pm @@ -26,7 +26,10 @@ sub run { # kill potentially bad/confusing headers # Note: ssoma already does this, but since we mangle the message, # we should do this before it gets to ssoma. - foreach my $d (qw(status lines content-length)) { + # We also kill Mail-{Followup,Reply}-To and Reply-To headers due to + # the nature of public-inbox having no real subscribers. + foreach my $d (qw(status lines content-length + mail-followup-to mail-reply-to reply-to)) { $simple->header_set($d); } @@ -259,4 +259,24 @@ sub count_body_parts { like($f->simple->as_string, qr/scrubbed/, "scrubbed message"); } +{ + my $s = Email::Simple->create( + header => [ + From => 'a@example.com', + To => 'b@example.com', + 'Content-Type' => 'text/plain', + 'Mail-Followup-To' => 'c@example.com', + Subject => 'mfttest', + ], + body => "mft\n", + ); + + is('c@example.com', $s->header("Mail-Followup-To"), + "mft set correctly"); + my $f = Email::Filter->new(data => $s->as_string); + is(1, PublicInbox::Filter->run($f->simple), "run succeeded for mft"); + is(undef, $f->simple->header("Mail-Followup-To"), "mft stripped"); +} + + done_testing(); |