From ec91fad41eca0982bb72c37b103bdad8a75ecd1d Mon Sep 17 00:00:00 2001 From: simond Date: Thu, 21 Mar 2002 18:21:25 +0000 Subject: [PATCH] Handle multiline headers (thanks to Christian Schmidt) git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@2620 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- functions/imap_messages.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/functions/imap_messages.php b/functions/imap_messages.php index 710f6b11..acb04608 100755 --- a/functions/imap_messages.php +++ b/functions/imap_messages.php @@ -175,7 +175,13 @@ function sqimap_get_small_header_list ($imap_stream, $msg_list, $issent) { $inrepto = ""; $read = $read_list[$msgi]; + $prevline = false; foreach ($read as $read_part) { + //unfold multi-line headers + while ($prevline && strspn($read_part, "\t ") > 0) { + $read_part = substr($prevline, 0, -2) . $read_part; + } + $prevline = $read_part; if (eregi ("^to:(.*)$", $read_part, $regs)) { $to = $regs[1]; } else if (eregi ("^from:(.*)$", $read_part, $regs)) { @@ -329,6 +335,12 @@ function sqimap_get_header ($imap_stream, $read) { $hdr->charset = "us-ascii"; while ($i < count($read)) { + //unfold multi-line headers + while ($i + 1 < count($read) && strspn($read[$i + 1], "\t ") > 0) { + $read[$i + 1] = substr($read[$i], 0, -2) . $read[$i + 1]; + array_splice($read, $i, 1); + } + if (substr($read[$i], 0, 17) == "MIME-Version: 1.0") { $hdr->mime = true; $i++; -- 2.25.1