(PHP 4, PHP 5, PHP 7, PHP 8)
imap_status — Devuelve la información de estado sobre un buzón de correo
Devuelve la información de estado sobre el buzón de correo mailbox.
imapUna instancia de IMAP\Connection .
mailboxEl nombre del buzón de correo, ver la documentación de la función imap_open() para más detalles
Pasar datos no confiables a este parámetro es inseguro, a menos que imap.enable_insecure_rsh esté desactivado.
flagsLos 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.
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.
| 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.
|
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);
?>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;
}
?>