| | |
| | | |
| | | |
| | | // set a new name to an existing mailbox |
| | | function rename_mailbox($mbox_name, $new_name, $subscribe=TRUE) |
| | | function rename_mailbox($mbox_name, $new_name) |
| | | { |
| | | $result = FALSE; |
| | | |
| | | // replace backslashes |
| | | $name = preg_replace('/[\\\]+/', '-', $new_name); |
| | | |
| | | // encode mailbox name and reduce it to 100 chars |
| | | $name_enc = substr(UTF7EncodeString($new_name), 0, 100); |
| | | |
| | | $name_enc = UTF7EncodeString($new_name); |
| | | |
| | | // reduce mailbox name to 100 chars |
| | | $name_enc = substr($name_enc, 0, 100); |
| | | |
| | | // make absolute path |
| | | $mailbox = $this->_mod_mailbox($mbox_name); |
| | | $abs_name = $this->_mod_mailbox($name_enc); |
| | | $a_mailbox_cache = $this->get_cache('mailboxes'); |
| | | |
| | | if (strlen($abs_name) && (!is_array($a_mailbox_cache) || !in_array($abs_name, $a_mailbox_cache))) |
| | | $result = iil_C_RenameFolder($this->conn, $mbox_name, $abs_name); |
| | | |
| | | // update mailboxlist cache |
| | | if ($result && $subscribe) |
| | | $this->unsubscribe($mbox_name); |
| | | $this->subscribe($name_enc); |
| | | |
| | | if (strlen($abs_name)) |
| | | $result = iil_C_RenameFolder($this->conn, $mailbox, $abs_name); |
| | | |
| | | // clear cache |
| | | if ($result) |
| | | { |
| | | $this->clear_message_cache($mailbox.'.msg'); |
| | | $this->clear_cache('mailboxes'); |
| | | } |
| | | |
| | | return $result ? $name : FALSE; |
| | | } |