hedera-web/rest/edi/clean.php

47 lines
1.0 KiB
PHP
Raw Normal View History

<?php
2016-09-24 14:32:31 +00:00
require_once __DIR__.'/lib/method.php';
2018-05-23 10:14:20 +00:00
class Clean extends Edi\Method {
function ediRun($db) {
$imap = $this->imap;
$cleanPeriod = $db->getValue(
"SELECT ic.cleanPeriod
FROM imapMultiConfig ic
JOIN util.config c ON c.environment = ic.environment");
$deleted = 0;
2018-05-23 10:14:20 +00:00
$date = new DateTime(NULL);
$date->sub(new DateInterval($cleanPeriod));
$filter = sprintf('BEFORE "%s"', $date->format('D, j M Y'));
$folders = [
2019-05-24 13:30:48 +00:00
$this->imapConf['successFolder']
,$this->imapConf['errorFolder']
];
foreach ($folders as $folder)
2018-05-23 10:14:20 +00:00
if (imap_reopen($imap, "{$this->mailbox}$folder")) {
if ($messages = imap_search($imap, $filter)) {
foreach ($messages as $message)
2018-05-23 10:14:20 +00:00
imap_delete($imap, $message);
2018-05-23 10:14:20 +00:00
imap_expunge($imap);
$count = count($messages);
$deleted += $count;
2018-05-23 11:09:55 +00:00
} else
$count = 0;
2016-08-31 11:53:46 +00:00
echo "$count mails deleted from $folder mailbox\n";
}
2016-08-31 11:53:46 +00:00
echo "Total $deleted mails deleted\n";
2017-07-10 11:37:04 +00:00
echo "Deleting records from database\n";
2019-05-24 13:30:48 +00:00
$db->query('DELETE FROM mail WHERE created < #', [$date]);
2017-07-10 11:37:04 +00:00
echo "Done\n";
}
}