/** * Returns IMAP server vendor name * * @return string Vendor name * @since 1.2 */ public function get_vendor() { if ($_SESSION['imap_vendor'] !== null) { return $_SESSION['imap_vendor']; } $config = rcube::get_instance()->config; $imap_vendor = $config->get('imap_vendor'); if ($imap_vendor) { return $imap_vendor; } if (!$this->check_connection()) { return; } if (($ident = $this->conn->data['ID']) === null) { $ident = $this->conn->id(array('name' => 'Roundcube', 'version' => RCUBE_VERSION, 'php' => PHP_VERSION, 'os' => PHP_OS)); } $vendor = (string) (!empty($ident) ? $ident['name'] : ''); $ident = strtolower($vendor . ' ' . $this->conn->data['GREETING']); $vendors = array('cyrus', 'dovecot', 'uw-imap', 'gmail', 'hmail'); foreach ($vendors as $v) { if (strpos($ident, $v) !== false) { $vendor = $v; break; } } return $_SESSION['imap_vendor'] = $vendor; }