You shouldn't call imap_expunge until before closing the connection. imap_delete tags a message for deletion, imap_expunge deletes all tagged messages. i.e.:
for ($i = 0; $i < $num; $i++) {
imap_delete($box, $i);
}
imap_expunge($box);
imap_expunge should not be in your inner loop.
PHP.mk документација
imap_expunge
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
function.imap-expunge.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
function.imap-expunge.php
imap_expunge
Референца за `function.imap-expunge.php` со подобрена типографија и навигација.
imap_expunge
(PHP 4, PHP 5, PHP 7, PHP 8)
imap_expunge — Избриши ги сите пораки означени за бришење
= NULL
Ги брише сите пораки означени за бришење од imap_delete(), imap_mail_move(), или imap_setflag_full().
Вратени вредности
Секогаш враќа true.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 |
На imap параметарот очекува IMAP\Connection
инстанца сега; претходно, валидна imap resource се очекуваше.
|
Белешки од корисници 2 забелешки
boswachter at xs4all dot nl ¶
20 години пред
Павел Черник ¶
пред 9 години
imap_expunge() may change order of messages which were loaded using imap_sort().
That means, if you use foreach() on result of imap_sort() function and each pass you move/delete a message and instantly expunge them, next cycle, messages will have different numbers than imap_sort() returned and the script will fail.