<?php /** * This script can be used either via an ajax call to update cached folders and/or as a cron * job or scheduled task. It simply caches all folders returned from the server. */ use Humps\ImapCacheManager\Memcache\MemcacheFolderCache; use Humps\ImapCacheManager\Memcache\MemcacheServer; use Humps\MailManager\Factories\ImapFactory; use Humps\MailManager\Factories\ImapFolderCollectionFactory; use Humps\MailManager\ImapMailboxService; set_time_limit(0); require_once '../../vendor/autoload.php'; // The memcache server host const HOST = 'localhost'; // The memcache server port const PORT = 11211; $cacheServer = MemcacheServer::connect(HOST, PORT); $cache = new MemcacheFolderCache($cacheServer); // Create the MailboxService so we can access our mailbox $imap = ImapFactory::create('INBOX', '../imap_config/config.php'); $mailboxService = new ImapMailboxService($imap); $folders = ImapFolderCollectionFactory::create($mailboxService->getAllFolders()); $cache->cacheFolders($folders);
<?php error_reporting(E_ERROR); set_time_limit(0); $time_start = microtime(true); use Humps\ImapCacheManager\Helpers\Sorter; use Humps\ImapCacheManager\ImapMessageCache; use Humps\ImapCacheManager\Memcache\MemcacheFolderCache; use Humps\ImapCacheManager\Memcache\MemcacheMessageCache; use Humps\ImapCacheManager\Memcache\MemcacheServer; use Humps\MailManager\Factories\ImapFactory; use Humps\MailManager\ImapMailboxService; require_once '../vendor/autoload.php'; $cacheServer = MemcacheServer::connect('localhost', 11211); $messageCache = new MemcacheMessageCache($cacheServer); $folderCache = new MemcacheFolderCache($cacheServer); $folder = isset($_REQUEST['folder']) ? $_REQUEST['folder'] : 'INBOX'; try { $imap = ImapFactory::create($folder); } catch (Exception $e) { die('Unable to connect to mail server'); } $mailboxService = new ImapMailboxService($imap); $folders = $folderCache->getAllCached(); Sorter::sort($folders, 'name'); // Uses getMailbox() method from the ImapConnection helper trait, or you can do: $imap->getConnection()->getMailbox()->getFolder(); $currentFolder = $mailboxService->getMailbox()->getFolder(); $aliases = $mailboxService->getAliases(); $isTrash = false; if (isset($aliases['trash'])) { if ($aliases['trash'] == $currentFolder) {
/** * @test */ public function it_returns_a_new_MemcacheServer_object() { $server = MemcacheServer::connect('localhost', '11211'); $this->assertInstanceOf(MemcacheServer::class, $server); }