thomascube
2008-07-31 e1367cf1a6d2ea857c57ad1677de1a8f0c1f1a3e
program/lib/imap.inc
@@ -90,6 +90,16 @@
$GLOBALS['IMAP_SERVER_TZ'] = date('Z');
$GLOBALS['IMAP_FLAGS'] = array(
    'SEEN'     => '\\Seen',
    'DELETED'  => '\\Deleted',
    'RECENT'   => '\\Recent',
    'ANSWERED' => '\\Answered',
    'DRAFT'    => '\\Draft',
    'FLAGGED'  => '\\Flagged',
    'FORWARDED' => '$Forwarded',
    'MDNSENT'  => '$MDNSent');
$iil_error;
$iil_errornum;
$iil_selected;
@@ -113,6 +123,7 @@
   var $rootdir;
   var $delimiter;
   var $capability = array();
   var $permanentflags = array();
}
/**
@@ -142,13 +153,14 @@
   var $priority;
   var $mdn_to;
   var $mdn_sent = false;
   var $is_reply = false;
   var $is_draft = false;
   var $seen = false;
   var $deleted = false;
   var $recent = false;
   var $answered = false;
   var $forwarded = false;
   var $junk = false;
   var $flagged = false;
}
/**
@@ -715,7 +727,7 @@
      return false;
   }
   if (strcmp($conn->selected, $mailbox) == 0) {
          return true;
      return true;
   }
    
   iil_C_LoadCache($conn, $mailbox);
@@ -728,9 +740,12 @@
            if (strcasecmp($a[2], 'EXISTS') == 0) {
               $conn->exists = (int) $a[1];
            }
                     if (strcasecmp($a[2], 'RECENT') == 0) {
                         $conn->recent = (int) $a[1];
                     }
            if (strcasecmp($a[2], 'RECENT') == 0) {
               $conn->recent = (int) $a[1];
            }
         }
         else if (preg_match('/\[?PERMANENTFLAGS\s+\(([^\)]+)\)\]/U', $line, $match)) {
            $conn->permanentflags = explode(' ', $match[1]);
         }
      } while (!iil_StartsWith($line, 'sel1'));
@@ -1756,8 +1771,12 @@
                         $result[$id]->answered = true;
                     } else if (strcasecmp($val, '$Forwarded') == 0) {
                         $result[$id]->forwarded = true;
                     } else if (strcasecmp($val, 'Draft') == 0) {
                         $result[$id]->is_draft = true;
                     } else if (strcasecmp($val, '$MDNSent') == 0) {
                         $result[$id]->mdn_sent = true;
                     } else if (strcasecmp($val, 'Flagged') == 0) {
                          $result[$id]->flagged = true;
                     }
                  }
                  $result[$id]->flags = $flags_a;
@@ -1906,15 +1925,7 @@
   }
    
   $fp    = $conn->fp;
   $flags = array(
        'SEEN'     => '\\Seen',
        'DELETED'  => '\\Deleted',
        'RECENT'   => '\\Recent',
        'ANSWERED' => '\\Answered',
        'DRAFT'    => '\\Draft',
        'FLAGGED'  => '\\Flagged',
        'FORWARDED' => '$Forwarded',
        'MDNSENT'  => '$MDNSent');
   $flags = $GLOBALS['IMAP_FLAGS'];
        
   $flag = strtoupper($flag);
   $flag = $flags[$flag];
@@ -2559,12 +2570,14 @@
   
   if (iil_C_Select($conn, $folder)) {
      $key = 'F1247';
      if (iil_PutLine($fp, "$key FETCH $id (BODYSTRUCTURE)")) {
         do {
            $line = iil_ReadLine($fp, 5000);
            $line = iil_MultLine($fp, $line);
            $result .= $line;
            list(, $index, $rest) = explode(' ', $line);
            if ($index == $id || preg_match("/^$key/", $line))
               $result .= $line;
         } while (!preg_match("/^$key/", $line));
         $result = trim(substr($result, strpos($result, 'BODYSTRUCTURE')+13, -(strlen($result)-strrpos($result, $key)+1)));