From aa16b4af8f67d91b1bfd2c584a665a53c403f47c Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 23 Dec 2009 03:01:39 -0500
Subject: [PATCH] - Improved handling of message parts of type message/rfc822 (fixed e.g. inline images in multipart/alternative messages attached as message/rfc822)

---
 program/lib/imap.inc |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index 409c262..17225c1 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -2136,7 +2136,7 @@
 	return (iil_ParseResult($line) == 0);
 }
 
-function iil_C_FetchMIMEHeaders(&$conn, $mailbox, $id, $parts) {
+function iil_C_FetchMIMEHeaders(&$conn, $mailbox, $id, $parts, $mime=true) {
 	
 	$fp     = $conn->fp;
 
@@ -2149,10 +2149,11 @@
 	$key = 'fmh0';
 	$peeks = '';
 	$idx = 0;
+        $type = $mime ? 'MIME' : 'HEADER';
 
 	// format request
 	foreach($parts as $part)
-		$peeks[] = "BODY.PEEK[$part.MIME]";
+		$peeks[] = "BODY.PEEK[$part.$type]";
 	
 	$request = "$key FETCH $id (" . implode(' ', $peeks) . ')';
 
@@ -2165,9 +2166,9 @@
         	$line = iil_ReadLine($fp, 1000);
         	$line = iil_MultLine($fp, $line);
 
-		if (preg_match('/BODY\[([0-9\.]+)\.MIME\]/', $line, $matches)) {
+		if (preg_match('/BODY\[([0-9\.]+)\.'.$type.'\]/', $line, $matches)) {
 			$idx = $matches[1];
-			$result[$idx] = preg_replace('/^(\* '.$id.' FETCH \()?\s*BODY\['.$idx.'\.MIME\]\s+/', '', $line);
+			$result[$idx] = preg_replace('/^(\* '.$id.' FETCH \()?\s*BODY\['.$idx.'\.'.$type.'\]\s+/', '', $line);
 			$result[$idx] = trim($result[$idx], '"');
 	    		$result[$idx] = rtrim($result[$idx], "\t\r\n\0\x0B");
     		}

--
Gitblit v1.9.1