imap_get_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_get_quota --  Retrieve the quota level settings, and usage statics per mailbox

Description

array imap_get_quota ( resource imap_stream, string quota_root )

Returns an array with integer values limit and usage for the given mailbox. The value of limit represents the total amount of space allowed for this mailbox. The usage value represents the mailboxes current level of capacity. Will return FALSE in the case of failure.

This function is currently only available to users of the c-client2000 or greater library.

NOTE: For this function to work, the mail stream is required to be opened as the mail-admin user. For a non-admin user version of this function, please see the imap_get_quotaroot() function of PHP.

imap_stream should be the value returned from an imap_open() call. NOTE: This stream is required to be opened as the mail admin user for the get_quota function to work. quota_root should normally be in the form of user.name where name is the mailbox you wish to retrieve information about.

例子 1. imap_get_quota() example

<?php
$mbox
= imap_open("{your.imap.host}", "mailadmin", "password", OP_HALFOPEN)
      or die(
"can't connect: " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (
is_array($quota_value)) {
    echo
"Usage level is: " . $quota_value['usage'];
    echo
"Limit level is: " . $quota_value['limit'];
}

imap_close($mbox);
?>

As of PHP 4.3, the function more properly reflects the functionality as dictated by the RFC 2087. The array return value has changed to support an unlimited number of returned resources (i.e. messages, or sub-folders) with each named resource receiving an individual array key. Each key value then contains an another array with the usage and limit values within it. The example below shows the updated returned output.

For backwards compatibility reasons, the original access methods are still available for use, although it is suggested to update.

例子 2. imap_get_quota() 4.3 or greater example

<?php
$mbox
= imap_open("{your.imap.host}", "mailadmin", "password", OP_HALFOPEN)
      or die(
"can't connect: " . imap_last_error());
       
$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (
is_array($quota_values)) {
   
$storage = $quota_values['STORAGE'];
   echo
"STORAGE usage level is: " .  $storage['usage'];
   echo
"STORAGE limit level is: " .  $storage['limit'];

   
$message = $quota_values['MESSAGE'];
   echo
"MESSAGE usage level is: " .  $message['usage'];
   echo
"MESSAGE limit is: " .  $message['limit'];

   
/* ...  */
}

imap_close($mbox);
?>

See also imap_open(), imap_set_quota() and imap_get_quotaroot().


add a note add a note User Contributed Notes
Shiraz Esat
21-Dec-2004 01:40
For this function to work your IMAP server must also have the 'getquota' capability!

Check this by logging in directly:
telnet <mail server> <port>

e.g. telnet mail.myserver.com 143

and then once you're connected to the server
0 CAPABILITY
dc at aufruhr dot com
19-Jul-2003 07:26
ok, this error just occurs if there are no quotas on your mailbox.

same with imap_get_quotaroot().