From 1ae11998589900b4161aa4af59e50f31f64ddc66 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Mon, 24 Oct 2011 14:08:53 -0400 Subject: [PATCH] - Improve handling of situation when FETCH returns OK, but no data --- program/include/rcube_imap.php | 14 +++++++------- program/include/rcube_imap_generic.php | 4 +++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index 7ffb17a..834a639 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -1962,6 +1962,10 @@ $headers = $this->get_headers($uid, $mailbox); + // message doesn't exist? + if (empty($headers)) + return null; + // structure might be cached if (!empty($headers->structure)) return $headers; @@ -2382,14 +2386,10 @@ $o_part->charset = rcube_imap_generic::getStructurePartCharset($structure, $part); } - // TODO: Add caching for message parts - - if (!$part) { - $part = 'TEXT'; + if ($o_part && $o_part->size) { + $body = $this->conn->handlePartBody($this->mailbox, $uid, true, + $part ? $part : 'TEXT', $o_part->encoding, $print, $fp); } - - $body = $this->conn->handlePartBody($this->mailbox, $uid, true, $part, - $o_part->encoding, $print, $fp); if ($fp || $print) { return true; diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php index bcfaa81..ecd2949 100644 --- a/program/include/rcube_imap_generic.php +++ b/program/include/rcube_imap_generic.php @@ -2393,8 +2393,10 @@ $len = strlen($line); $result = false; + if ($a[2] != 'FETCH') { + } // handle empty "* X FETCH ()" response - if ($line[$len-1] == ')' && $line[$len-2] != '(') { + else if ($line[$len-1] == ')' && $line[$len-2] != '(') { // one line response, get everything between first and last quotes if (substr($line, -4, 3) == 'NIL') { // NIL response -- Gitblit v1.9.1