diff options
Diffstat (limited to 'apps/admin/lib/imap/IMAPManager.php')
-rw-r--r-- | apps/admin/lib/imap/IMAPManager.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/apps/admin/lib/imap/IMAPManager.php b/apps/admin/lib/imap/IMAPManager.php new file mode 100644 index 0000000..0cac78a --- /dev/null +++ b/apps/admin/lib/imap/IMAPManager.php @@ -0,0 +1,48 @@ +<?php + +class IMAPManager +{ + protected static $adminclient = null; + public static function getAdminConnection() + { + // exists + if(self::$adminclient != null) + return self::$adminclient; + + // create new instance + $server_settings = sfConfig::get('app_server_default'); + $imap_settings = $server_settings['imap']; + self::$adminclient = new $imap_settings['client']; + + // login + try + { + self::$adminclient->openConnection( + $imap_settings['host'].":". + $imap_settings['port'] + ); + + $success = self::$adminclient->login( + $imap_settings['admin'], + $imap_settings['pass'] + ); + + if(!$success) + throw new Exception("Failed to authenticate on IMAP server."); + + } catch (Exception $e) { + LogEntryPeer::log($e->getMessage(), LogEntry::PRIO_ALERT); + } + + return self::$adminclient; + } + + public static function getAdminUsername() + { + $server_settings = sfConfig::get('app_server_default'); + $imap_settings = $server_settings['imap']; + return $imap_settings['admin']; + } +} + +?> |