PHP Doku:: Informationen zum aktuellen Postfach - function.imap-mailboxmsginfo.html

Verlauf / Chronik / History: (5) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzE-Mail-relevante ErweiterungenIMAP, POP3 and NNTPIMAP Funktionenimap_mailboxmsginfo

Ein Service von Reinhard Neidl - Webprogrammierung.

IMAP Funktionen

<<imap_mail

imap_mime_header_decode>>

imap_mailboxmsginfo

(PHP 4, PHP 5)

imap_mailboxmsginfoInformationen zum aktuellen Postfach

Beschreibung

object imap_mailboxmsginfo ( resource $imap_stream )

Prüft den aktuelle Status des Postfachs auf dem Server. Die Funktion ist vergleichbar mit imap_status(), liefert aber zusätzlich auch die Gesamtgröße aller Nachrichten in Bytes. Das Aufsummieren der einzelnen Nachrichtengrößen benötigt dabei zusätzliche Zeit zur Ausführung. execute.

Parameter-Liste

imap_stream

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

Rückgabewerte

Die Ergebnisse werden in einem Objekt mit folgenden Properties zurückgegeben:
Postfach Eigenschaften
Date Zeitpunkt der letzten Änderung (aktuelle Zeit)
Driver Treiber
Mailbox Name des Postfachs
Nmsgs Anzahl der Nachrichten
Recent Anzahl der kürzlich eingetroffenen Nachrichten
Unread Anzal der ungelesenen Nachrichten
Deleted Anzahl der gelöschten Nachrichten
Size Gesamtgröße des Postfachs in Bytes

Sollten Fehler auftreten so wird FALSE zurückgegeben.

Beispiele

Beispiel #1 imap_mailboxmsginfo() Beispiel

<?php

$mbox 
imap_open("{imap.example.org}INBOX""username""password")
      or die(
"can't connect: " imap_last_error());

$check imap_mailboxmsginfo($mbox);

if (
$check) {
    echo 
"Date: "     $check->Date    "<br />\n" ;
    echo 
"Driver: "   $check->Driver  "<br />\n" ;
    echo 
"Mailbox: "  $check->Mailbox "<br />\n" ;
    echo 
"Messages: " $check->Nmsgs   "<br />\n" ;
    echo 
"Recent: "   $check->Recent  "<br />\n" ;
    echo 
"Unread: "   $check->Unread  "<br />\n" ;
    echo 
"Deleted: "  $check->Deleted "<br />\n" ;
    echo 
"Size: "     $check->Size    "<br />\n" ;
} else {
    echo 
"imap_check() failed: " imap_last_error() . "<br />\n";
}

imap_close($mbox);

?>


8 BenutzerBeiträge:
- Beiträge aktualisieren...
phrank
15.03.2010 14:32
imap_mailboxmsginfo() is NOT similar to imap_status(). You will easily recognize that if you compare the prototypes:

object imap_mailboxmsginfo  (  resource $imap_stream  )

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

One SIGNIFICANT difference is that imap_mailboxmsginfo() gets the mailbox name from the stream resource and imap_status() requires any mailbox name as second argument.
Maxg
30.08.2004 23:41
About the slowness of imap_mailboxmsginfo() : if used on an IMAP connection, I did checked my mailserver logs and it appeared to send FETCH commands to retrieve the headers of EVERY messages of the mailbox ...
So, if you have, let's say, 400 messages in a folder, the function will be very slow (>1.5 sec on a local server !) ...

I strongly advise you to use imap_status() instead, which only sends one < STATUS "Mailbox/Name" (MESSAGES UNSEEN) > and is actually a lot faster (at least with IMAP, but that's maybe not true with POP3)
m at tacker dot org
12.03.2003 10:55
The runtime difference between imap_status and imap_mailboxmsginfo is very significant on large mailboxes

<?php

/** opening connection to a
   * mailbox with 3987 messages
   * and retrive status information **/
$mbox = imap_open ('{mail.somwhere.com:110}', $user, $password);

$mbox_info = imap_status($mbox, '{mail.somwhere.com:110}INBOX', SA_MESSAGES);
/** took 11.05 seconds **/

$mbox_info = imap_mailboxmsginfo($mbox);
/** took 6 minutes 5.382 seconds **/

?>
til_roque at yahoo dot com
3.03.2003 23:13
the 'recent' of this function returns the same as 'UIDvalidity' from imap_status() ... makes no sense (or dos it?)
js at jerntorget dot se, ej at jerntorget dot se
20.09.2002 16:29
then use imap_get_quotaroot().....

or use this one (works with qmail):
function get_quotaroot() {
if(!$socket = @fsockopen("your server", your port);
    return false;
fgets($socket, 1024);
fputs($socket, "a001 LOGIN ".$username." ".$password."\n");
fgets($socket, 1024);
fputs($socket, "a002 GETQUOTAROOT INBOX\n");
fgets($socket, 1024);
$result = fgets($socket, 1024);
fputs($socket, "a003 LOGOUT\n");
fgets($socket, 1024);
sscanf($result, '* QUOTA "ROOT" (STORAGE %d %d MESSAGE %d %d', $usedSize, $maxSize, $usedNum, $maxNum);
return array("usedSize" => $usedSize, "maxSize" => $maxSize, "usedNum" => $usedNum, "maxNum" => $maxNum);
}
stephane-wantiez at tiscalinet dot be
11.08.2002 22:13
imap_get_quota need you to be the admin of the mail server !
dolce at koulikov dot cc
13.01.2002 7:57
Don't lie... I've timed it, there is merely a time difference, besides it returns a lot of other useful info packed in an object!
whw at my169 dot com
4.01.2002 16:35
It is very slow,so don't use it to get mailbox size,used imap_get_quota instead.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)