hedera-web/rest/edi/clean.php

44 lines
999 B
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;
2018-05-23 10:14:20 +00:00
$cleanPeriod = $db->getValue('SELECT clean_period FROM imap_config');
$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 = [
$this->imapConf['success_folder']
,$this->imapConf['error_folder']
];
2018-05-23 10:14:20 +00:00
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);
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";
2018-05-23 10:14:20 +00:00
$db->query('DELETE FROM message WHERE created < #', [$date]);
2017-07-10 11:37:04 +00:00
echo "Done\n";
}
}