imap_get_quota

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

imap_get_quotaLiefert Quota-Einstellungen und Nutzungsstatistik der Postfächer

Beschreibung

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

imap_get_quota() ermittelt die aktuellen Quota-Einstellungen und tatsächlich genutzten Ressourcen für Postfächer.

Für die Ausführung dieser Funktion ist ein IMAP-Benutzer mit Administrationsrechten erforderlich, eine nichtadministrative Variante der Funktion ist imap_get_quotaroot().

Parameter-Liste

imap

Eine IMAP\Connection-Instanz.

quota_root

quota_root sollte normalerweise in der Form user.name angegeben werden. name ist dabei der Name des Postfachs, für das Informationen geliefert werden sollen.

Rückgabewerte

Gibt ein Array mit den zwei Integer-Elementen limit und usage zurück, die den insgesamt verfügbaren und den zur Zeit vom Postfach genutzten Speicherplatz angeben. Im Fehlerfall wird false zurückgegeben.

Ab PHP 4.3 hält sich die Funktion genauer an die Vorgaben aus » RFC2087. Das Ergebnisarray unterstützt nun eine unbegrenzte Anzahl von Ressourcenwerten (d. h. der Nachrichten oder Unterordner). Für jede Ressource wird ein Arrayelement mit dem Namen der Ressource als Key angelegt, die einzelnen Arrayelemente sind wiederum Arrays mit Angaben zu Limit und Nutzung.

Aus Gründen der Rückwärtskompatibilität werden außerdem weiterhin die beiden ursprünglichen Arrayelemente limit und usage zurückgegeben, ihre weitere Nutzung wird allerdings nicht empfohlen.

Changelog

Version Beschreibung
8.1.0 Der Parameter imap erwartet nun eine IMAP\Connection-Instanz; vorher wurde eine gültige imap-Ressource erwartet.

Beispiele

Beispiel #1 imap_get_quota()-Beispiel

<?php
$mbox
= imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
or die(
"Kann keine Verbindung aufbauen: " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (
is_array($quota_value)) {
echo
"Aktuell genutzt: " . $quota_value['usage'];
echo
"Verfügbar (Limit): " . $quota_value['limit'];
}

imap_close($mbox);
?>

Beispiel #2 Beispiel für imap_get_quota() ab 4.3 und aufwärts

<?php
$mbox
= imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
or die(
"Kann keine Verbindung aufbauen: " . imap_last_error());

$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (
is_array($quota_values)) {
$storage = $quota_values['STORAGE'];
echo
"Speicherplatz (aktuell genutzt): " . $storage['usage'];
echo
"Speicherplatz (Limit): " . $storage['limit'];

$message = $quota_values['MESSAGE'];
echo
"Anzahl Nachrichten (aktuell): " . $message['usage'];
echo
"Anzahl Nachrichten (Limit): " . $message['limit'];

/* ... */
}

imap_close($mbox);
?>

Anmerkungen

Diese Funktion ist aktuell erst ab der Bibliotheksversion c-client2000 verfügbar.

Der angegebene imap muss als Mail-Administrator geöffnet werden, sonst schlägt diese Funktion fehl.

Siehe auch

add a note 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
-2
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