PHP 5.6.0 released

imap_mailboxmsginfo

(PHP 4, PHP 5)

imap_mailboxmsginfoObtener información sobre el buzón actual

Descripción

object imap_mailboxmsginfo ( resource $imap_stream )

Comprueba el estado del buzón actual del servidor. Es similar a imap_status(), excepto que resumirá el tamaño de todos los mensajes del buzón, lo que tomará algún tiempo adicional para ejecutarse.

Parámetros

imap_stream

IMAP stream devuelto por imap_open().

Valores devueltos

Devuelve la información en un objeto con las siguientes propiedades:

Propiedades del buzón
Date fecha del último cambio (fecha/hora actuales)
Driver controlador
Mailbox nombre del buzón
Nmsgs número de mensajes
Recent número de mensajes recientes
Unread número de mensajes no leídos
Deleted número de mensajes eliminados
Size tamaño del buzón

Devuelve FALSE en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de imap_mailboxmsginfo()

<?php

$buzón 
imap_open("{imap.example.org}INBOX""username""password")
      or die(
"no se puede conectar: " imap_last_error());

$comprobar imap_mailboxmsginfo($buzón);

if (
$comprobar) {
    echo 
"Fecha: "       $comprobar->Date    "<br />\n" ;
    echo 
"Controlador: " $comprobar->Driver  "<br />\n" ;
    echo 
"Buzón: "       $comprobar->Mailbox "<br />\n" ;
    echo 
"Mensajes: "    $comprobar->Nmsgs   "<br />\n" ;
    echo 
"Recientes: "   $comprobar->Recent  "<br />\n" ;
    echo 
"No leídos: "   $comprobar->Unread  "<br />\n" ;
    echo 
"Eliminados: "  $comprobar->Deleted "<br />\n" ;
    echo 
"Tamaño: "      $comprobar->Size    "<br />\n" ;
} else {
    echo 
"imap_check() falló: " imap_last_error() . "<br />\n";
}

imap_close($mbox);

?>

add a note add a note

User Contributed Notes 8 notes

up
1
phrank
4 years ago
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.
up
0
Maxg
9 years ago
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)
up
0
m at tacker dot org
11 years ago
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 **/

?>
up
0
til_roque at yahoo dot com
11 years ago
the 'recent' of this function returns the same as 'UIDvalidity' from imap_status() ... makes no sense (or dos it?)
up
0
js at jerntorget dot se, ej at jerntorget dot se
11 years ago
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);
}
up
0
stephane-wantiez at tiscalinet dot be
12 years ago
imap_get_quota need you to be the admin of the mail server !
up
0
dolce at koulikov dot cc
12 years ago
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!
up
0
whw at my169 dot com
12 years ago
It is very slow,so don't use it to get mailbox size,used imap_get_quota instead.
To Top