47 lines
931 B
PHP
47 lines
931 B
PHP
<?php
|
|
|
|
require_once (__DIR__.'/lib/method.php');
|
|
|
|
class Clean extends Edi\Method
|
|
{
|
|
function ediRun ()
|
|
{
|
|
$db = $this->getSysConn ();
|
|
$imap = $this->imap;
|
|
|
|
$cleanPeriod = $db->getValue ('SELECT clean_period FROM imap_config');
|
|
|
|
$deleted = 0;
|
|
$date = new DateTime (NULL);
|
|
$date->sub (new DateInterval ($cleanPeriod));
|
|
$filter = sprintf ('BEFORE "%s"', $date->format('D, j M Y'));
|
|
|
|
$folders = [
|
|
$this->imapConf['success_folder']
|
|
,$this->imapConf['error_folder']
|
|
];
|
|
|
|
foreach ($folders as $folder)
|
|
if (imap_reopen ($imap, $this->mailbox .'.'. $folder))
|
|
{
|
|
if ($messages = imap_search ($imap, $filter))
|
|
{
|
|
foreach ($messages as $message)
|
|
imap_delete ($imap, $message);
|
|
|
|
imap_expunge ($imap);
|
|
$count = count ($messages);
|
|
$deleted += $count;
|
|
}
|
|
else
|
|
$count = 0;
|
|
|
|
echo "$count mails deleted from $folder mailbox\n";
|
|
}
|
|
|
|
echo "Total $deleted mails deleted\n";
|
|
}
|
|
}
|
|
|
|
?>
|