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 — Belirtilen kullanıcının kota ayarlarını döndürür
Açıklama
$imap_akımı
, string $kullanıcı
)Belirtilen kullanıcının posta kutusunun kota ayarlarını ve istatistiklerini döndürür.
Bu işlev sadece yönetici tarafından kullanılır. Diğer kullanıcıların imap_get_quotaroot() işlevini kullanmaları gerekir.
Değiştirgeler
-
imap_akımı -
imap_open() işlevinden dönen bir IMAP akımı.
-
quota_root -
Genelde user.isim biçeminde olup 'isim' hakkında bilgi istenecek posta kutusunun ismidir.
Dönen Değerler
Belirtilen posta kutusunun kapasitesi ile ilgili bilgileri bir ilişkisel
dizi içinde döndürür. Tüm değerler bir özkaynağın adını anahtar olarak alan
birer dizidir ve bu alt diziler 'usage' ve 'limit' indisli değerler içerir.
Bir hata durumunda FALSE döner.
PHP 4.3'ten itibaren, işlev » RFC 2087'ye daha fazla uyumludur. Dönen dizi sınırsız sayıda özkaynağı (iletiler, alt dizinler gibi) destekleyecek şekilde değiştirilmiştir. Her özkaynakla ilgili bilgiler ayrıca alt dizinlere konmuştur. İlişkisel dizinin her anahtarı değer olarak 'usage' ve 'limit' indisli bir dizi içerir.
Geriye uyumluluk adına özgün erişim yöntemleri hala kullanılabilmekteyse de bir güncelleme önerilir.
Örnekler
Örnek 1 - imap_get_quota() örneği
<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
or die("bağlanılamadı: " . imap_last_error());
$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_value)) {
echo "Kullanılan: " . $quota_value['usage'];
echo "Azami boyut: " . $quota_value['limit'];
}
imap_close($mbox);
?>
Örnek 2 - imap_get_quota() 4.3 ve üstü örneği
<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
or die("bağlanılamadı: " . imap_last_error());
$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_values)) {
$storage = $quota_values['STORAGE'];
echo "Kullanılmış saklama alanı: " . $storage['usage'];
echo "Saklama alanının azami boyutu: " . $storage['limit'];
$message = $quota_values['MESSAGE'];
echo "İletinin uzunluğu: " . $message['usage'];
echo "İleti için azami uzunluk: " . $message['limit'];
/* ... */
}
imap_close($mbox);
?>
Notlar
Bu işlev sadece c-client2000 ve üstü kütüphane sürümleriyle kullanılabilir.
imap_akımı posta yöneticisi olarak açılmış olmalıdır,
yoksa işlev başarısız olur.
Ayrıca Bakınız
- imap_open() - Belirtilen posta kutusuna yeni bir IMAP akımı açar
- imap_set_quota() - Belirtilen posta kutusu için bir kota tanımlar
- imap_get_quotaroot() - Kullanıcının kendi kota ayarlarını döndürür
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
ok, this error just occurs if there are no quotas on your mailbox.
same with imap_get_quotaroot().
