imap_get_quota

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

imap_get_quotaПолучает настройку уровня квоты и статистику использования почтовых ящиков

Описание

imap_get_quota(IMAP\Connection $imap, string $quota_root): array|false

Возвращает настройку уровня квоты и статистику использования почтовых ящиков.

Версия данной функции для обычных пользователей, не администраторов, для которых в PHP существует функция imap_get_quotaroot().

Список параметров

imap

Экземпляр класса IMAP\Connection.

quota_root

quota_root должно соответствовать формату user.name, где name - имя ящика, информация по которому нужна.

Возвращаемые значения

Возвращает ассоциативный массив целых чисел с ключами "limit" и "usage". Число с ключом "limit" определяет максимальный допустимый размер ящика. Число с ключом "usage" определяет текущий уровень использования. В случае возникновения ошибки вернёт false.

Начиная с PHP 4.3 и выше, функция более точно соответствует стандарту, описанному в » RFC2087. Значение возвращаемого массива изменилось для поддержки неограниченного количества возвращаемых ресурсов (т.е. сообщений или подпапок), где каждый именованный ресурс будет представлен индивидуальным массивом. Каждый элемент массива будет содержать другой массив к ключами "limit" и "usage".

Для обеспечения обратной совместимости, оригинальный метод доступа всё ещё доступен, хотя предполагается это поправить.

Список изменений

Версия Описание
8.1.0 Параметр imap теперь ожидает экземпляр класса IMAP\Connection; раньше параметр ждал ресурс (resource) imap.

Примеры

Пример #1 Пример использования imap_get_quota()

<?php
$mbox
= imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
or die(
"не удалось подключиться: " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (
is_array($quota_value)) {
echo
"Уровень использования: " . $quota_value['usage'];
echo
"Размер ящика: " . $quota_value['limit'];
}

imap_close($mbox);
?>

Пример #2 Пример использования imap_get_quota() в PHP 4.3 и выше

<?php
$mbox
= imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
or die(
"не удалось подключиться: " . imap_last_error());

$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (
is_array($quota_values)) {
$storage = $quota_values['STORAGE'];
echo
"Уровень использования STORAGE: " . $storage['usage'];
echo
"Максимальный размер STORAGE: " . $storage['limit'];

$message = $quota_values['MESSAGE'];
echo
"Уровень использования MESSAGE: " . $message['usage'];
echo
"Максимальный размер MESSAGE: " . $message['limit'];

/* ... */
}

imap_close($mbox);
?>

Примечания

Эта функция доступна только при использовании библиотеки c-client2000 или новее.

Заданный поток imap должен быть открыт под административным пользователем.

Смотрите также

  • imap_open() - Открывает поток IMAP к почтовому ящику
  • imap_set_quota() - Устанавливает квоту для заданного почтового ящика
  • imap_get_quotaroot() - Получает настройки квоты для каждого пользователя

add a note

User Contributed Notes 3 notes

up
0
Anti Veeranna
17 years ago
If you're using this (or probably any other imap functions) and getting "Notice: Unknown: Quota root does not exist (errflg=2) in Unknown on line 0" errors after the script finishes, then call imap_errors() function before you close the imap stream - this will clear the error stack and you don't get those annoying notices.

Took me a while to figure it out.
up
-1
Shiraz Esat
19 years ago
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
up
-3
dc at aufruhr dot com
20 years ago
ok, this error just occurs if there are no quotas on your mailbox.

same with imap_get_quotaroot().
To Top