1: <?php
2:
3: App::uses('ImapMailBox', 'Email.Lib');
4:
5: class ImapClient {
6:
7: /**
8: *
9: * @var Horde_Imap_Client_Socket
10: */
11: private $client;
12:
13: public function __construct($hordeImapClientSettings = array()) {
14: $this->client = new Horde_Imap_Client_Socket($hordeImapClientSettings);
15: }
16:
17: /**
18: *
19: * @param string $config
20: * @return ImapClient
21: */
22: public static function createFromEmailConfig($config = 'default') {
23: return new ImapClient(self::_hordeImapClientsFromEmailConfig($config));
24: }
25:
26: private static function _hordeImapClientsFromEmailConfig($config) {
27: config('email');
28: $emailConfig = new EmailConfig();
29: return array(
30: 'username' => $emailConfig->{$config}['username'],
31: 'password' => $emailConfig->{$config}['password'],
32: 'hostspec' => $emailConfig->{$config}['imap_host'],
33: 'port' => $emailConfig->{$config}['imap_port'],
34: 'secure' => $emailConfig->{$config}['imap_secure'],
35: );
36: }
37:
38: /**
39: *
40: * @return Horde_Imap_Client_Socket
41: */
42: public function getHordeImapClient() {
43: return $this->client;
44: }
45:
46: public function createMailBox($mailBoxName) {
47: return new ImapMailBox($this, $mailBoxName);
48: }
49:
50: }
51: