Sven Rautenberg: imap_delete() - Mehrere E-Mails löschen

Beitrag lesen

Moin!

Der Code:

Da fehlt der Befehl zum Öffnen der Mailbox (imap_open()).

$emails = $_POST["emails"];
$anzahl_emails = count($emails);
for ($i = 1; $i <= $anzahl_emails; $i++) {
     if ($emails[$i]) {
          imap_delete($mbox, $emails[$i]);
          imap_expunge($mbox);
          imap_close($mbox);
     }
}

In $emails (array) sind die E-Mails gespeichert, mit count() ermittle ich die Anzahl der im Array gespeicherten E-Mails um dann in der for-Schleife alle E-Mails zu löschen, wo ein Eintrag existiert.

foreach ist echt eine schönere Lösung.

Jedenfalls kommt folgende Fehlermeldung:

Warning: imap_delete(): 2 is not a valid imap resource in ...\delete.php on line 12

Seltsamerweise immer genau bei der ZWEITEN Mail, die markiert ist - nachdem imap_close() schon einmal aufgerufen wurde. Wundert dich das?

Ich würde auch imap_expunge() aus der Schleife rausnehmen, dürfte mehr Performance bringen.

- Sven Rautenberg

--
"Love your nation - respect the others."