ConFoo 2025

imap_status

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

imap_statusRetourne les informations de statut sur une boîte aux lettres

Description

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

Retourne les informations de statut sur la boîte aux lettres mailbox.

Liste de paramètres

imap

Une instance de IMAP\Connection.

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

flags

Les drapeaux valides sont :

  • SA_MESSAGES - met la valeur de $status->messages au nombre de messages dans la boîte aux lettres.
  • SA_RECENT - met la valeur de $status->recent au nombre de messages récents dans la boîte aux lettres.
  • SA_UNSEEN - met la valeur de $status->unseen au nombre de messages non lus dans la boîte aux lettres.
  • SA_UIDNEXT - met la valeur de $status->uidnext à la prochaine valeur d'uid qui sera utilisée.
  • SA_UIDVALIDITY - met la valeur de $status->uidvalidity à une constante, qui change lorsque l'uid de la boîte aux lettres n'est plus valide.
  • SA_ALL - fixe toutes les valeurs précédentes.

Valeurs de retour

Cette fonction retourne un objet contenant les informations sur le statut, ou false si une erreur survient. L'objet a les propriétés suivantes : messages, recent, unseen, uidnext, et uidvalidity.

flags est également défini, qui contient un masque contenant une des constantes ci-dessus.

Historique

Version Description
8.1.0 La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une resource imap était attendue.

Exemples

Exemple #1 Exemple avec imap_status()

<?php
$mbox
= imap_open("{imap.example.com}", "username", "password", OP_HALFOPEN)
or die(
"Connexion impossible : " . imap_last_error());

$status = imap_status($mbox, "{imap.example.org}INBOX", SA_ALL);
if (
$status) {
echo
"Messages : " . $status->messages . "<br />\n";
echo
"Récent : " . $status->recent . "<br />\n";
echo
"Non lu : " . $status->unseen . "<br />\n";
echo
"Prochain UID: " . $status->uidnext . "<br />\n";
echo
"Validité de l'UID:" . $status->uidvalidity . "<br />\n";
} else {
echo
"imap_status a échoué : " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

add a note

User Contributed Notes 1 note

up
2
mwwaygoo AT hotmail DOT com
12 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;
}
?>
To Top