- preformance fix: don't load full folders list when checking for folder
existance in sendmail.inc, use internal cache to make mailbox_exists()
faster when called more than one time for the same folder
| | |
| | | if ($mbox_name == 'INBOX') |
| | | return true; |
| | | |
| | | $key = $subscription ? 'subscribed' : 'existing'; |
| | | if (is_array($this->icache[$key]) && in_array($mbox_name, $this->icache[$key])) |
| | | return true; |
| | | |
| | | if ($subscription) { |
| | | $a_folders = $this->conn->listSubscribed($this->mod_mailbox(''), $mbox_name); |
| | | } |
| | |
| | | } |
| | | |
| | | if (is_array($a_folders) && in_array($this->mod_mailbox($mbox_name), $a_folders)) { |
| | | $this->icache[$key][] = $mbox_name; |
| | | return true; |
| | | } |
| | | } |
| | |
| | | |
| | | if ($store_target) |
| | | { |
| | | // check if mailbox exists |
| | | if (!in_array($store_target, $IMAP->list_mailboxes())) |
| | | { |
| | | // check if folder is subscribed |
| | | if ($IMAP->mailbox_exists($store_target, true)) |
| | | $store_folder = true; |
| | | // folder may be existing but not subscribed (#1485241) |
| | | if (!in_array($store_target, $IMAP->list_unsubscribed())) |
| | | $store_folder = $IMAP->create_mailbox($store_target, TRUE); |
| | | else if (!$IMAP->mailbox_exists($store_target)) |
| | | $store_folder = $IMAP->create_mailbox($store_target, true); |
| | | else if ($IMAP->subscribe($store_target)) |
| | | $store_folder = TRUE; |
| | | } |
| | | else |
| | | $store_folder = TRUE; |
| | | $store_folder = true; |
| | | |
| | | // append message to sent box |
| | | if ($store_folder) { |