International PHP Conference Berlin 2025

imap_expunge

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_expungeLöscht alle zum Löschen markierte Nachrichten

Beschreibung

imap_expunge(IMAP\Connection $imap): true

Löscht alle Nachrichten im aktuellen Postfach, die durch die Funktionen imap_delete(), imap_mail_move() oder imap_setflag_full() zum Löschen vorgemerkt wurden.

Parameter-Liste

imap

Eine IMAP\Connection-Instanz.

Rückgabewerte

Gibt immer true zurück.

Changelog

Version Beschreibung
8.1.0 Der Parameter imap erwartet nun eine IMAP\Connection-Instanz; vorher wurde eine gültige imap-resource erwartet.
add a note

User Contributed Notes 2 notes

up
11
boswachter at xs4all dot nl
18 years ago
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.
up
4
Pavel Cernik
8 years ago
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.
To Top