PHP 5.4.31 Released

imap_status

(PHP 4, PHP 5)

imap_statusLiefert Statusinformationen zum angegebenen Postfach

Beschreibung

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

iefert ausgewählte Statusinformationen zum Postfach mailbox.

Parameter-Liste

imap_stream

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

mailbox

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

options

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

Rückgabewerte

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.

Beispiele

Beispiel #1 imap_status() Beispiel

<?php
$mbox 
imap_open("{imap.example.com}""username""password"OP_HALFOPEN)
      or die(
"can't connect: " imap_last_error());

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

imap_close($mbox);
?>

add a note add a note

User Contributed Notes 3 notes

up
0
mwwaygoo AT hotmail DOT com
2 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;
    }
?>
up
0
razonklnbd at hotmail dot com
6 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>');
up
0
jille at DIESPAMMERShexon dot cx
7 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..

Conclusion:
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
To Top