Horde_ActiveSync_Imap_Adapter::getMailboxes PHP Method

getMailboxes() public method

Return an array of available mailboxes. Uses's the mail/mailboxList API method for obtaining the list.
public getMailboxes ( ) : array
return array
    public function getMailboxes()
    {
        return $this->_imap->getMailboxes();
    }

Usage Example

Example #1
0
 /**
  * Return the list of mail server folders.
  *
  * @return array  An array of Horde_ActiveSync_Message_Folder objects.
  */
 protected function _getMailFolders()
 {
     if (empty($this->_mailFolders)) {
         if (empty($this->_imap)) {
             $this->_mailFolders = array($this->_buildDummyFolder(self::SPECIAL_INBOX));
             $this->_mailFolders[] = $this->_buildDummyFolder(self::SPECIAL_TRASH);
             $this->_mailFolders[] = $this->_buildDummyFolder(self::SPECIAL_SENT);
             $this->_mailFolders[] = $this->_buildDummyFolder(self::SPECIAL_DRAFTS);
             $this->_mailFolders[] = $this->_buildDummyFolder(self::SPECIAL_OUTBOX);
         } else {
             $this->_logger->info(sprintf("[%s] Polling Horde_Core_ActiveSync_Driver::_getMailFolders()", $this->_pid));
             $folders = array();
             try {
                 $imap_folders = $this->_imap->getMailboxes(true);
             } catch (Horde_ActiveSync_Exception $e) {
                 $this->_logger->err(sprintf("[%s] Problem loading mail folders from IMAP server: %s", $this->_pid, $e->getMessage()));
                 throw $e;
             }
             // Build the folder tree, making sure the lower levels are
             // added first.
             $level = 0;
             $cnt = 0;
             while ($cnt < count($imap_folders)) {
                 foreach ($imap_folders as $id => $folder) {
                     if ($folder['level'] == $level) {
                         try {
                             $folders[] = $this->_getMailFolder((string) $id, $imap_folders, $folder);
                             ++$cnt;
                         } catch (Horde_ActiveSync_Exception $e) {
                             $this->_logger->err(sprintf("[%s] Problem retrieving %s mail folder", $this->_pid, $id));
                         }
                     }
                 }
                 ++$level;
             }
             // Fake Outbox for broken clients.
             $folders[] = $this->_buildDummyFolder(self::SPECIAL_OUTBOX);
             $this->_mailFolders = $folders;
         }
     }
     return $this->_mailFolders;
 }