| | |
| | | |
| | | $ICL_PORT = $port; |
| | | $IMAP_USE_INTERNAL_DATE = false; |
| | | |
| | | $auth_type = rcmail::get_instance()->config->get('imap_auth_type', 'check'); |
| | | |
| | | $this->conn = iil_Connect($host, $user, $pass, array('imap' => 'check')); |
| | | $this->conn = iil_Connect($host, $user, $pass, array('imap' => $auth_type)); |
| | | $this->host = $host; |
| | | $this->user = $user; |
| | | $this->pass = $pass; |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | // return empty array if no messages found |
| | | if (!is_array($a_msg_headers) || empty($a_msg_headers)) { |
| | | return array(); |
| | |
| | | |
| | | // fetch reuested headers from server |
| | | $a_msg_headers = array(); |
| | | $this->_fetch_headers($mailbox, join(',', $msgs), $a_msg_headers, NULL); |
| | | $this->_fetch_headers($mailbox, $msgs, $a_msg_headers, NULL); |
| | | |
| | | // return empty array if no messages found |
| | | if (!is_array($a_msg_headers) || empty($a_msg_headers)) |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Return a flat array with references to all parts, indexed by part numbers |
| | | * |
| | | * @param object rcube_message_part Message body structure |
| | | * @return Array with part number -> object pairs |
| | | */ |
| | | function get_mime_numbers(&$structure) |
| | | { |
| | | $a_parts = array(); |
| | | $this->_get_part_numbers($structure, $a_parts); |
| | | return $a_parts; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Helper method for recursive calls |
| | | * |
| | | * @access private |
| | | */ |
| | | function _get_part_numbers(&$part, &$a_parts) |
| | | { |
| | | if ($part->mime_id) |
| | | $a_parts[$part->mime_id] = &$part; |
| | | |
| | | if (is_array($part->parts)) |
| | | for ($i=0; $i<count($part->parts); $i++) |
| | | $this->_get_part_numbers($part->parts[$i], $a_parts); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Fetch message body of a specific message from the server |
| | | * |
| | |
| | | */ |
| | | function clear_cache($key=NULL) |
| | | { |
| | | if (!$this->caching_enabled) |
| | | return; |
| | | |
| | | if ($key===NULL) |
| | | { |
| | | foreach ($this->cache as $key => $data) |
| | |
| | | $pos = strpos($input, '=?'); |
| | | if ($pos !== false) |
| | | { |
| | | // rfc: all line breaks or other characters not found in the Base64 Alphabet must be ignored by decoding software |
| | | // delete all blanks between MIME-lines, differently we can receive unnecessary blanks and broken utf-8 symbols |
| | | // rfc: all line breaks or other characters not found |
| | | // in the Base64 Alphabet must be ignored by decoding software |
| | | // delete all blanks between MIME-lines, differently we can |
| | | // receive unnecessary blanks and broken utf-8 symbols |
| | | $input = preg_replace("/\?=\s+=\?/", '?==?', $input); |
| | | |
| | | $out = substr($input, 0, $pos); |
| | |
| | | |
| | | return $out; |
| | | } |
| | | |
| | | |
| | | // no encoding information, use fallback |
| | | return rcube_charset_convert($input, !empty($fallback) ? $fallback : 'ISO-8859-1'); |
| | | return rcube_charset_convert($input, |
| | | !empty($fallback) ? $fallback : rcmail::get_instance()->config->get('default_charset', 'ISO-8859-1')); |
| | | } |
| | | |
| | | |
| | |
| | | */ |
| | | function position_of($seqnum) |
| | | { |
| | | $c = count($this->sequence_numbers); |
| | | for ($pos = 0; $pos <= $c; $pos++) |
| | | { |
| | | if ($this->sequence_numbers[$pos] == $seqnum) |
| | | return $pos; |
| | | } |
| | | return -1; |
| | | $pos = array_search($seqnum, $this->sequence_numbers); |
| | | if ($pos === false) return -1; |
| | | return $pos; |
| | | } |
| | | |
| | | /** |