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.
imap_get_quota
(PHP 4 >= 4.0.5, PHP 5)
imap_get_quota — Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles
Description
Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles.
Pour une version utilisateur, non administrateur, de cette fonction, reportez-vous à la fonction imap_get_quotaroot().
Liste de paramètres
- imap_stream
-
Un flux IMPA retourné par la fonction imap_open().
- quota_root
-
quota_root doit être de la forme : "user.nom", où "nom" est le nom de la boîte aux lettres que vous souhaitez analyser.
Valeurs de retour
Retourne un tableau contenant les valeurs de quota et courante de la boîte aux lettres quota_root . Le quota représente la taille maximale de votre boîte aux lettres. La valeur courante est l'espace actuellement utilisé par votre boîte aux lettres. imap_get_quota() retournera FALSE en cas d'échec.
Depuis PHP 4.3, la fonction reflète plus fidèlement les fonctionnalités édictée par la » RFC2087. Le tableau retourné a changé pour supporter un nombre illimité de ressources retournées (i.e. messages ou sous-dossiers) avec chaque ressource nommée qui est identifiée par une clé. Chaque clé contient alors un autre tableau avec l'utilisation et le quota. L'exemple ci-dessous montre comment l'utiliser.
Pour des raisons de compatibilité, la méthode d'accès originale est toujours disponible, mais il est recommandé de l'abandonner.
Exemples
Exemple #1 Exemple avec imap_get_quota()
<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
or die("Impossible de se connecter : " . imap_last_error());
$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_value)) {
echo "Niveau d'utilisation : " . $quota_value['usage'];
echo "Quota : " . $quota_value['limit'];
}
imap_close($mbox);
?>
Exemple #2 Exemple avec imap_get_quota() 4.3 ou supérieur
<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
or die("Impossible de se connecter : " . imap_last_error());
$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_values)) {
$storage = $quota_values['STORAGE'];
echo "Utilisation actuelle de la capacité de stockage : " . $storage['usage'];
echo "Quota actuel de stockage : " . $storage['limit'];
$message = $quota_values['MESSAGE'];
echo "Niveau d'utilisation de MESSAGE : " . $message['usage'];
echo "Quota de MESSAGE : " . $message['limit'];
/* ... */
}
imap_close($mbox);
?>
Notes
imap_get_quota() ne fonctionne actuellement qu'avec les bibliothèques c-client2000.
imap_stream doit avoir été créé avec la fonction imap_open(). Ce flux est nécessairement ouvert en tant qu'administrateur du serveur, pour que les droits nécessaires lui soient alloués.
Voir aussi
- imap_open() - Ouvre un flux IMAP vers une boîte aux lettres
- imap_set_quota() - Modifie le quota d'une boîte aux lettres
- imap_get_quotaroot() - Lit les quotas de chaque utilisateur
imap_get_quota
01-Mar-2007 07:26
20-Dec-2004 05: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
18-Jul-2003 11:26
ok, this error just occurs if there are no quotas on your mailbox.
same with imap_get_quotaroot().
