the function is using the message number (and not the uid !)
$uid = $mail->uid;
$msgno = $mail->msgno;
if you want to use the uid, simply option value
imap_delete($mbox, $uid, FT_UID);
(PHP 4, PHP 5, PHP 7, PHP 8)
imap_delete — Markiert eine Nachricht im aktuellen Postfach zur Löschung
Die mit message_nums
angegebene Nachricht wird zur
Löschung vorgemerkt. Entsprechend markierte Nachrichten bleiben im
Postfach erhalten, bis entweder imap_expunge()
aufgerufen wird oder imap_close() mit der Option
CL_EXPUNGE
beim Schließen der Verbindung.
imap
Eine IMAP\Connection-Instanz.
message_nums
Ein String, der eine oder mehrere Nachrichten im IMAP4-üblichen
Sequenzformat darstellt ("n"
,
"n:m"
oder eine Kombination daraus, durch Kommas
getrennt).
flags
Mit Hilfe der Option FT_UID
kann festgelegt
werden, dass message_nums
UID
s
anstelle der Nachrichtennummern enthält.
Gibt immer true
zurück.
Wenn flags
ungültig ist, wird ein
ValueError geworfen.
Version | Beschreibung |
---|---|
8.1.0 |
Der Parameter imap erwartet nun eine
IMAP\Connection-Instanz; vorher wurde eine gültige
imap -Ressource erwartet.
|
8.0.0 |
Bei ungültigen Parameterwerten von flags wird
nun ein ValueError geworfen; zuvor wurde eine
Warnung ausgegeben und die Funktion gab false zurück.
|
Beispiel #1 imap_delete()-Beispiel
<?php
$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
or die("Kann keine Verbindung aufbauen: " . imap_last_error());
$check = imap_mailboxmsginfo($mbox);
echo "Anzahl der Nachrichten vor imap_delete: " . $check->Nmsgs . "<br />\n";
imap_delete($mbox, 1);
$check = imap_mailboxmsginfo($mbox);
echo "Anzahl der Nachrichten nach imap_delete: " . $check->Nmsgs . "<br />\n";
imap_expunge($mbox);
$check = imap_mailboxmsginfo($mbox);
echo "Anzahl der Nachrichten nach imap_expunge: " . $check->Nmsgs . "<br />\n";
imap_close($mbox);
?>
Hinweis:
Bei IMAP-Postfächern können Nachrichten-Flags serverseitig nicht zwischen Verbindungen gespeichert werden; markierte Nachrichten sollten daher noch während der aktuellen Verbindung mit imap_expunge() entfernt werden, ansonsten bleiben sie möglicherweise ohne Löschmarkierung weiter erhalten.