From b5f82d05569c228544f31627a03477f2a464f74f Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 25 Feb 2014 22:26:35 +0000 Subject: precheck: require Message-ID to be set Valid emails should not arrive without a Message-ID. --- lib/PublicInbox.pm | 4 +++- t/precheck.t | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/PublicInbox.pm b/lib/PublicInbox.pm index 899027be..56137d14 100644 --- a/lib/PublicInbox.pm +++ b/lib/PublicInbox.pm @@ -16,8 +16,10 @@ sub __drop_plus { # do not allow Bcc, only Cc and To if ORIGINAL_RECIPIENT (postfix) env is set sub precheck { my ($klass, $filter) = @_; + my $simple = $filter->simple; + return 0 unless $simple->header("Message-ID"); return 0 unless defined($filter->from); - return 0 if length($filter->simple->as_string) > MAX_SIZE; + return 0 if length($simple->as_string) > MAX_SIZE; recipient_specified($filter); } diff --git a/t/precheck.t b/t/precheck.t index 6deead98..f9d61d8e 100644 --- a/t/precheck.t +++ b/t/precheck.t @@ -38,6 +38,7 @@ sub do_checks { Cc => 'c@example.com', 'Content-Type' => 'text/plain', Subject => 'this is a subject', + 'Message-ID' => '', ], body => "hello world\n", )); @@ -51,6 +52,7 @@ sub do_checks { Cc => 'John Doe ', 'Content-Type' => 'text/plain', Subject => 'this is a subject', + 'Message-ID' => '', ], body => "hello world\n", )); @@ -64,6 +66,7 @@ sub do_checks { Cc => 'c@example.com', 'Content-Type' => 'text/plain', Subject => 'this is a subject', + 'Message-ID' => '', ], body => "hello world\n", ); -- cgit v1.2.3-24-ge0c7