Dutch PHP Conference 2021 - Call for Papers


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

imap_statusLiefert Statusinformationen zum angegebenen Postfach


imap_status ( resource $imap_stream , string $mailbox , int $options ) : object

Liefert Statusinformationen zum Postfach mailbox.



Eine von imap_open() zurückgegebene IMAP-Verbindung.


Der Postfachname, siehe imap_open() für weitere Informationen.


Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.


Bitmaske mit folgenden möglichen Werten:

  • SA_MESSAGES - setzt $status->messages auf die Anzahl der Nachrichten im Postfach
  • SA_RECENT - setzt $status->recent auf die Anzahl kürzlich eingetroffener Nachrichten im Postfach
  • SA_UNSEEN - setzt $status->unseen auf die Anzahl ungelesener Nachrichten im Postfach
  • SA_UIDNEXT - setzt $status->uidnext auf die nächste diesem Postfach zugeteilte UID
  • SA_UIDVALIDITY - setzt $status->uidvalidity auf eine Konstante, die sich ändert, falls die UIDs im Postfach ihre Gültigkeit verloren haben könnten
  • SA_ALL - setzt alle Flags


Die Funktion liefert ein Objekt mit Statusinformationen in den Properties messages, recent, unseen, uidnext und uidvalidity.

flags wird ebenfalls gesetzt und enthält eine Bitmaske mit der die tatsächlich gelieferten Informationen mit Hilfe der oben beschriebenen Konstanten geprüft werden können.


Beispiel #1 imap_status() Beispiel

      or die(
"kann nicht verbinden: " imap_last_error());

$status imap_status($mbox"{imap.example.org}INBOX"SA_ALL);
if (
$status) {
"Messages:   " $status->messages    "<br />\n";
"Recent:     " $status->recent      "<br />\n";
"Unseen:     " $status->unseen      "<br />\n";
"UIDnext:    " $status->uidnext     "<br />\n";
"UIDvalidity:" $status->uidvalidity "<br />\n";
} else {
"imap_status schlug fehl: " imap_last_error() . "\n";


add a note add a note

User Contributed Notes 3 notes

jille at DIESPAMMERShexon dot cx
13 years ago
In 'reply' to my previous post;
I`m not sure of that anymore
I think this trick works,
but the rest of my script just sucks..

You can get the last UID by using status->uidnext-1
BUT: This is not a good way, if another message is added after your append and before your status; you are screwed
mwwaygoo AT hotmail DOT com
8 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.

function my_imap_status($stream, $mailbox='', $info=SA_ALL)
// get current mailbox name (and info)
$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
//switch to new mailbox
if(!imap_reopen($stream, $mailbox)) return false;
// get info
// switch back to original mailbox
imap_reopen($stream, $current_mailbox);
//return info
return $obj;
razonklnbd at hotmail dot com
13 years ago
another tips is to get only total number of message and recent message

$imap_obj = imap_status($mbox, '{mail.mysrv.com:143/imap}INBOX', SA_MESSAGES+SA_RECENT);
echo('<pre>'); var_dump($imap_obj); echo('</pre>');
To Top