/** * the constructor * * creates instance of Expressomail_Backend_Imap with parameters * Supported parameters are * - user username * - host hostname or ip address of IMAP server [optional, default = 'localhost'] * - password password for user 'username' [optional, default = ''] * - port port for IMAP server [optional, default = 110] * - ssl 'SSL' or 'TLS' for secure sockets * - folder select this folder [optional, default = 'INBOX'] * * @param array $params mail reader specific parameters * @throws Expressomail_Exception_IMAPInvalidCredentials * @return void */ public function __construct($params, $_readOnly = FALSE) { if (is_array($params)) { $params = (object) $params; } if (!isset($params->user)) { throw new Expressomail_Exception_IMAPInvalidCredentials('Need at least user in params.'); } $params->host = isset($params->host) ? $params->host : 'localhost'; $params->password = isset($params->password) ? $params->password : ''; $params->port = isset($params->port) ? $params->port : null; $params->ssl = isset($params->ssl) ? $params->ssl : false; $this->_params = $params; $expressomailConfig = Expressomail_Config::getInstance(); $imapBackendConfigDefinition = $expressomailConfig->getDefinition(Expressomail_Config::IMAPBACKEND); $backendClassName = self::$_availableBackends[$imapBackendConfigDefinition['default']]; $expressomailSettings = $expressomailConfig->get(Expressomail_Config::EXPRESSOMAIL_SETTINGS); $backendName = isset($expressomailSettings[Expressomail_Config::IMAPBACKEND]) ? $expressomailSettings[Expressomail_Config::IMAPBACKEND] : $imapBackendConfigDefinition['default']; if ($backendName != $imapBackendConfigDefinition['default']) { if (Tinebase_Helper::checkClassExistence(self::$_availableBackends[$backendName], true) && Tinebase_Helper::checkSubClassOf(self::$_availableBackends[$backendName], 'Expressomail_Backend_Imap_Interface', true)) { $backendClassName = self::$_availableBackends[$backendName]; } } $this->_backend = new $backendClassName($params, $_readOnly); }