<?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);
Example #2
0
<?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);
 }