From: Eric Wong Date: Thu, 21 Apr 2016 22:46:04 +0000 (+0000) Subject: mda: reject multiple Message-IDs up front X-Git-Tag: v1.0.0~598 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1ef09f609adb0afc9efa5a3ff1600bae3c9587e6;p=thirdparty%2Fpublic-inbox.git mda: reject multiple Message-IDs up front While ssoma now documents it uses the first Message-ID, they are confusing and could be a sign of a broken mail software, and broken mail software is often a sign of spam... ref: http://public-inbox.org/meta/20160421221128.4910-1-e@80x24.org/ --- diff --git a/lib/PublicInbox/MDA.pm b/lib/PublicInbox/MDA.pm index 003bac659..26681c2f3 100644 --- a/lib/PublicInbox/MDA.pm +++ b/lib/PublicInbox/MDA.pm @@ -23,7 +23,9 @@ sub __drop_plus { sub precheck { my ($klass, $filter, $address) = @_; my Email::Simple $simple = $filter->simple; - my $mid = $simple->header("Message-ID"); + my @mid = $simple->header('Message-ID'); + return 0 if scalar(@mid) != 1; + my $mid = $mid[0]; return 0 if (length($mid) > MAX_MID_SIZE); return 0 unless usable_str(length(''), $mid) && $mid =~ /\@/; return 0 unless usable_str(length('u@h'), $filter->from);