thomascube
2005-10-07 42b11351497ce67e96a0465c76694632cdfb3ecb
program/include/rcube_imap.inc
@@ -24,9 +24,6 @@
require_once('lib/imap.inc');
require_once('lib/mime.inc');
// check for Open-SSL support in PHP build
//$ICL_SSL = TRUE;
//$ICL_PORT = 993;
class rcube_imap
  {
@@ -35,7 +32,8 @@
  var $mailbox = 'INBOX';
  var $list_page = 1;
  var $page_size = 10;
  var $cacheing_enabled = FALSE;
  var $delimiter = NULL;
  var $caching_enabled = FALSE;
  var $default_folders = array('inbox', 'drafts', 'sent', 'junk', 'trash');
  var $cache = array();
  var $cache_changes = array();  
@@ -46,8 +44,7 @@
  // PHP 5 constructor
  function __construct()
    {
    if (function_exists('rcube_read_cache'))
      $this->cacheing_enabled = TRUE;
    }
  // PHP 4 compatibility
@@ -75,15 +72,29 @@
    }
  function connect($host, $user, $pass, $port=143)
  function connect($host, $user, $pass, $port=143, $use_ssl=FALSE)
    {
    global $ICL_PORT;
    global $ICL_PORT, $CONFIG;
    // check for Open-SSL support in PHP build
    if ($use_ssl && in_array('openssl', get_loaded_extensions()))
      $ICL_SSL = TRUE;
    $ICL_PORT = $port;
    $this->conn = iil_Connect($host, $user, $pass);
    $this->conn = iil_Connect($host, $user, $pass, array('imap' => 'check'));
    $this->host = $host;
    $this->user = $user;
    $this->pass = $pass;
    if ($this->conn && ($CONFIG['debug_level'] & 8))
      print $this->conn->message;
    else if (!$this->conn && $GLOBALS['iil_error'])
      {
      raise_error(array('code' => 403,
                       'type' => 'imap',
                       'message' => $GLOBALS['iil_error']), TRUE, FALSE);
      }
    return $this->conn ? TRUE : FALSE;
    }
@@ -153,6 +164,14 @@
    return $this->conn ? $this->_mod_mailbox($this->mailbox, 'out') : '';
    }
  function get_hierarchy_delimiter()
    {
    if ($this->conn && empty($this->delimiter))
      $this->delimiter = iil_C_GetHierarchyDelimiter($this->conn);
    return $this->delimiter;
    }
  // public method for mailbox listing
  // convert mailbox name with root dir first
@@ -681,14 +700,22 @@
  /* --------------------------------
   *   internal cacheing functions
   *   internal caching functions
   * --------------------------------*/
  function set_caching($set)
    {
    if ($set && function_exists('rcube_read_cache'))
      $this->caching_enabled = TRUE;
    else
      $this->caching_enabled = FALSE;
    }
  function get_cache($key)
    {
    // read cache
    if (!isset($this->cache[$key]) && $this->cacheing_enabled)
    if (!isset($this->cache[$key]) && $this->caching_enabled)
      {
      $cache_data = rcube_read_cache('IMAP.'.$key);
      $this->cache[$key] = strlen($cache_data) ? unserialize($cache_data) : FALSE;
@@ -708,7 +735,7 @@
  function write_cache()
    {
    if ($this->cacheing_enabled && $this->cache_changed)
    if ($this->caching_enabled && $this->cache_changed)
      {
      foreach ($this->cache as $key => $data)
        {