thomascube
2008-09-18 7dfb1fba5001299300736e6b5d95d9400575e3e7
program/include/rcube_imap.php
@@ -166,6 +166,10 @@
    {
    $this->close();
    $this->connect($this->host, $this->user, $this->pass, $this->port, $this->ssl);
    // issue SELECT command to restore connection status
    if ($this->mailbox)
      iil_C_Select($this->conn, $this->mailbox);
    }
@@ -1279,9 +1283,10 @@
   * @param  string Part number
   * @param  object rcube_message_part Part object created by get_structure()
   * @param  mixed  True to print part, ressource to write part contents in
   * @param  resource File pointer to save the message part
   * @return string Message/part body if not printed
   */
  function &get_message_part($uid, $part=1, $o_part=NULL, $print=NULL)
  function &get_message_part($uid, $part=1, $o_part=NULL, $print=NULL, $fp=NULL)
    {
    if (!($msg_id = $this->_uid2id($uid)))
      return FALSE;
@@ -1314,7 +1319,10 @@
      }
    else
      {
      $body = iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id, $part, 1);
      if ($fp && $o_part->encoding == 'base64')
        return iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id, $part, 3, $fp);
      else
        $body = iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id, $part, 1);
      // decode part body
      if ($o_part->encoding)
@@ -1329,8 +1337,14 @@
        $body = rcube_charset_convert($body, $o_part->charset);
        }
      if ($fp)
        {
        fwrite($fp, $body);
   return true;
        }
      }
    return $body;
    }
@@ -1367,6 +1381,23 @@
    return $body;    
    }
  /**
   * Returns the message headers as string
   *
   * @param int  Message UID
   * @return string Message headers string
   */
  function &get_raw_headers($uid)
    {
    if (!($msg_id = $this->_uid2id($uid)))
      return FALSE;
    $headers = iil_C_FetchPartHeader($this->conn, $this->mailbox, $msg_id, NULL);
    return $headers;
    }
    
  /**