From 7c52008d9a8e3ce1a458e8b6c997d10c74bb2cbb Mon Sep 17 00:00:00 2001 From: azumakuniyuki Date: Wed, 6 Jan 2016 18:15:09 +0900 Subject: [PATCH] Apply patch from @0xcdcdcdcd to resolve issue #151 --- lib/Sisimai/MTA/Postfix.pm | 2 +- lib/Sisimai/Message.pm | 4 +++- lib/Sisimai/RFC5322.pm | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/Sisimai/MTA/Postfix.pm b/lib/Sisimai/MTA/Postfix.pm index f55a9300a..26a372c9c 100644 --- a/lib/Sisimai/MTA/Postfix.pm +++ b/lib/Sisimai/MTA/Postfix.pm @@ -97,7 +97,7 @@ sub scan { if( $readcursor & $Indicators->{'message-rfc822'} ) { # After "message/rfc822" - if( $e =~ m/\A([-0-9A-Za-z]+?)[:][ ]*.+\z/ ) { + if( $e =~ m/\A([-0-9A-Za-z]+?)[:][ ]*.*\z/ ) { # Get required headers only my $lhs = lc $1; $previousfn = ''; diff --git a/lib/Sisimai/Message.pm b/lib/Sisimai/Message.pm index 678798bb8..be7962a49 100644 --- a/lib/Sisimai/Message.pm +++ b/lib/Sisimai/Message.pm @@ -296,7 +296,8 @@ sub takeapart { for my $e ( @hasdivided ) { # Header name as a key, The value of header as a value - if( $e =~ m/\A([-0-9A-Za-z]+?)[:][ ]*(.+)\z/ ) { + # if( $e =~ m/\A([-0-9A-Za-z]+?)[:][ ]*(.+)\z/ ) { + if( $e =~ m/\A([-0-9A-Za-z]+?)[:][ ]*(.*)\z/ ) { # Header my $lhs = lc $1; my $rhs = $2; @@ -327,6 +328,7 @@ sub takeapart { } else { # ASCII Characters only: Not MIME-Encoded + $e =~ s/\A[ \t]+//; # unfolding $takenapart->{ $previousfn } .= $e; $mimeborder->{ $previousfn } //= 0; } diff --git a/lib/Sisimai/RFC5322.pm b/lib/Sisimai/RFC5322.pm index 7cb4e4e29..2b831cf91 100644 --- a/lib/Sisimai/RFC5322.pm +++ b/lib/Sisimai/RFC5322.pm @@ -67,7 +67,8 @@ sub HEADERFIELDS { sub LONGFIELDS { # Fields that might be long # @return [Hash] Long filed(email header) list - return { 'to' => 1, 'from' => 1, 'subject' => 1 }; + # return { 'to' => 1, 'from' => 1, 'subject' => 1 }; + return { 'to' => 1, 'from' => 1, 'subject' => 1, 'message-id' => 1 }; } sub is_emailaddress {