fixed dropmail.php to check every 2 hours

This commit is contained in:
Gitea
2025-05-09 21:34:06 +05:30
parent 0c8ed52eb8
commit 424b9be1e1

View File

@@ -32,24 +32,48 @@ if (!$inbox) {
$current_time = time(); $current_time = time();
// Search for messages older than one day // Search for messages older than one day
$search_criteria = 'BEFORE "' . date('d-M-Y', strtotime('-3 hours', $current_time)) . '"'; //$search_criteria = 'BEFORE "' . date('d-M-Y', strtotime('-3 hours', $current_time)) . '"';
$messages = imap_search($inbox, $search_criteria); //$messages = imap_search($inbox, $search_criteria);
$messages = imap_search($inbox, 'ALL');
$batch_size = 10; $batch_size = 10;
$deleted_count = 0; $deleted_count = 0;
//if ($messages) {
// $chunks = array_chunk($messages, $batch_size);
// foreach ($chunks as $chunk) {
// foreach ($chunk as $message_number) {
// imap_delete($inbox, $message_number);
// }
// imap_expunge($inbox);
// $deleted_count += count($chunk);
// }
// echo $deleted_count . ' messages older than specified time have been deleted.';
//} else {
// echo 'No messages older than specified time found in mailbox.';
//}
if ($messages) { if ($messages) {
$chunks = array_chunk($messages, $batch_size); $chunks = array_chunk($messages, $batch_size);
foreach ($chunks as $chunk) { foreach ($chunks as $chunk) {
foreach ($chunk as $message_number) { foreach ($chunk as $message_number) {
// Get message header to fetch internal date
$header = imap_headerinfo($inbox, $message_number);
$date_str = $header->date;
$msg_time = strtotime($date_str);
// Check if message is older than 3 hours
if ($msg_time !== false && ($current_time - $msg_time) > 2 * 3600) {
imap_delete($inbox, $message_number); imap_delete($inbox, $message_number);
$deleted_count++;
}
} }
imap_expunge($inbox); imap_expunge($inbox);
$deleted_count += count($chunk);
} }
echo $deleted_count . ' messages older than specified time have been deleted.'; echo $deleted_count . ' messages older than 2 hours have been deleted.';
} else { } else {
echo 'No messages older than specified time found in mailbox.'; echo 'No messages found in mailbox.';
} }
// Close mailbox connection // Close mailbox connection