2.8.1.7. Видалення старих листів із поштової скриньки
Увага!
- Скрипт видаляє листи з усіх папок поштової скриньки.
- При великому обсязі поштової скриньки скрипт може не встигнути видалити листи за один прохід і може знадобитися повторний запуск.
Скрипт видалення листів за певний проміжок часу:
<?php $Before = 'BEFORE "' . $Before . '"'; $After = 'SINCE "' . $After . '"'; $mbox = imap_open("{" . $Host . "/novalidate-cert}INBOX", $User, $Password) or die("Can't connect: " . imap_last_error()); try { throw new Exception("Error is occurred"); } foreach ($list as $mailbox) { continue; } foreach ($emails as $email_id) { '/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)\r\n/m', $matches ); } } } catch (Exception $e) { echo $e->getMessage(), "\n"; }
Дані для роботи скрипта можна вказувати безпосередньо в його коді або командному рядку при запуску:
Host
— адреса і порт IMAP-сервера.User
— назва поштової скриньки.Password
— пароль поштової скриньки.Before
— дата «до». Видалятимуться листи, які були отримані до цієї дати.After
— дата «після». Видалятимуться листи, які були отримані після цієї дати.
Дати можна вказувати у форматі РРРР-ММ-ДД
або як кількість часу від поточної дати у форматі -1 year
, -1 month
або -1 day
.
Приклад команди запуску скрипта в консолі або cron:
/usr/local/bin/php /home/example/file.php mail.adm.tools:143 admin@example.com "password" "2022-03-24" "2015-04-28"