PHP Conference Kansai 2025

imap_delete

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

imap_deleteMarca el fichero para el borrado, en el buzón de correo actual

Descripción

imap_delete(IMAP\Connection $imap, string $message_nums, int $flags = 0): bool

Marca los mensajes message_nums para el borrado. El borrado real no intervendrá hasta la llamada de la función imap_expunge() o de imap_close() con el parámetro opcional CL_EXPUNGE.

Parámetros

imap

An IMAP\Connection instance.

message_nums

Un string representando uno o varios mensajes en un estilo de formato de una secuencia IMAP4 ("n", "n:m", o una combinación de esto, delimitado por comas).

flags

Puede ser definido a FT_UID que solicita a la función tratar el argumento message_nums como un UID.

Valores devueltos

Siempre devuelve true.

Errores/Excepciones

Lanza una excepción ValueError si el parámetro flags es inválido.

Historial de cambios

Versión Descripción
8.1.0 The imap parameter expects an IMAP\Connection instance now; previously, a valid imap recurso was expected.
8.0.0 Una excepción ValueError es ahora lanzada para valores de parámetro flags inválidos. Anteriormente, una advertencia era emitida y la función retornaba false.

Ejemplos

Ejemplo #1 Ejemplo con imap_delete()

<?php

$mbox
= imap_open("{imap.example.org}INBOX", "username", "password")
or die(
"Conexión imposible : " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);
echo
"Número de mensajes antes del borrado : " . $check->Nmsgs . "<br />\n";

imap_delete($mbox, 1);

$check = imap_mailboxmsginfo($mbox);
echo
"Número de mensajes después del borrado : " . $check->Nmsgs . "<br />\n";

imap_expunge($mbox);

$check = imap_mailboxmsginfo($mbox);
echo
"Número de mensajes después de imap_expunge : " . $check->Nmsgs . "<br />\n";

imap_close($mbox);
?>

Notas

Nota:

Los buzones de correo IMAP no tienen los flags de sus mensajes guardados entre las conexiones, por lo que la función imap_expunge() debe ser llamada durante la misma conexión para que los mensajes marcados para el borrado sean realmente purgados.

Ver también

add a note

User Contributed Notes 1 note

up
7
erational
12 years ago
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);
To Top