LonghornPHP 2026

imap_status

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

imap_statusDevuelve la información de estado sobre un buzón de correo

Descripción

function imap_status(IMAP\Connection $imap, string $mailbox, int $flags): stdClass |false

Devuelve la información de estado sobre el buzón de correo mailbox.

Parámetros

imap

Una instancia de IMAP\Connection .

mailbox

El nombre del buzón de correo, ver la documentación de la función imap_open() para más detalles

Advertencia

Pasar datos no confiables a este parámetro es inseguro, a menos que imap.enable_insecure_rsh esté desactivado.

flags

Los flags válidos son:

  • SA_MESSAGES - establece el valor de $status->messages al número de mensajes en el buzón de correo.

  • SA_RECENT - establece el valor de $status->recent al número de mensajes recientes en el buzón de correo.

  • SA_UNSEEN - establece el valor de $status->unseen al número de mensajes no leídos en el buzón de correo.

  • SA_UIDNEXT - establece el valor de $status->uidnext al siguiente valor de uid que será utilizado.

  • SA_UIDVALIDITY - establece el valor de $status->uidvalidity a una constante, que cambia cuando el uid del buzón de correo ya no es válido.

  • SA_ALL - establece todos los valores anteriores.

Valores devueltos

Esta función devuelve un objeto que contiene la información de estado, o false si ocurre un error. El objeto tiene las siguientes propiedades: messages, recent, unseen, uidnext, y uidvalidity.

flags también está definido, que contiene una máscara con una de las constantes anteriores.

Historial de cambios

Versión Descripción
8.1.0 El parámetro imap ahora espera una instancia de IMAP\Connection ; anteriormente, se esperaba un resource imap válido.

Ejemplos

Ejemplo #1 Ejemplo con imap_status()

<?php
$mbox = imap_open("{imap.example.com}", "username", "password", OP_HALFOPEN)
 or die("Conexión imposible : " . imap_last_error());
$status = imap_status($mbox, "{imap.example.org}INBOX", SA_ALL);
if ($status) {
 echo "Mensajes : " . $status->messages . "<br />\n";
 echo "Reciente : " . $status->recent . "<br />\n";
 echo "No leído : " . $status->unseen . "<br />\n";
 echo "Próximo UID: " . $status->uidnext . "<br />\n";
 echo "Validez del UID: " . $status->uidvalidity . "<br />\n";
} else {
 echo "imap_status ha fallado : " . imap_last_error() . "\n";
}
imap_close($mbox);
?>

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 1 note

up
2
mwwaygoo AT hotmail DOT com
14 years ago
I had issues with imap_status not working correctly, while other imap functions seemed okay. I always got the ['flags']=0 response. No notes here and Google searching suggests it doesn't working properly with Exchange, so I wrote a little workaround, to at least get some information.
<?php
 function my_imap_status($stream, $mailbox='', $info=SA_ALL)
 {
 // get current mailbox name (and info)
 $curr_obj=imap_check($stream);
 if(!$curr_obj) return false;
 
 // if request if for current mailbox then just return it
 if( (empty($mailbox)) || ($mailbox==$curr_obj->Mailbox) ) return $curr_obj;
 
 // get current mailbox
 $current_mailbox=$curr_obj->Mailbox;
 
 //switch to new mailbox
 if(!imap_reopen($stream, $mailbox)) return false;
 
 // get info
 $obj=imap_check($stream);
 
 // switch back to original mailbox
 imap_reopen($stream, $current_mailbox);
 
 //return info
 return $obj;
 }
?>
+add a note

AltStyle によって変換されたページ (->オリジナル) /