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 值表示邮箱当前的容量级别。如果失败,将返回 false

从 PHP 4.3 开始,该函数更恰当地反映了 » RFC2087 中规定的功能。数组返回值已更改为支持无限数量的返回资源(即消息或子文件夹),每个命名资源都收到一个单独的数组键。然后,每个键值包含另一个数组,其中包含使用情况和限制值。

为了向后兼容,原始访问方法仍然可以使用,但建议您进行更新。

变更日志

版本 说明
8.1.0 imap 参数现在期望一个 IMAP\Connection 实例;之前,期望一个有效的 imap 资源

范例

示例 #1 imap_get_quota() 示例

<?php
$mbox
= imap_open("{imap.example.org}", "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);
?>

示例 #2 imap_get_quota() 4.3 或更高版本示例

<?php
$mbox
= imap_open("{imap.example.org}", "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);
?>

注释

此函数目前仅适用于 c-client2000 或更高版本的库的用户。

给定的 imap 必须以邮件管理员身份打开,否则此函数将失败。

参见

添加注释

用户贡献的注释 3 个注释

0
Anti Veeranna
17 年前
如果您正在使用此(或可能其他任何 imap 函数)并在脚本完成后遇到“注意:未知:配额根不存在(errflg=2)在未知行 0”错误,那么在关闭 imap 流之前调用 imap_errors() 函数 - 这将清除错误堆栈,并且您不会收到那些烦人的通知。

我花了一段时间才弄清楚。
-1
Shiraz Esat
19 年前
要使此函数正常工作,您的 IMAP 服务器还必须具有“getquota”功能!

通过直接登录来检查
telnet <邮件服务器> <端口>

例如 telnet mail.myserver.com 143

然后在您连接到服务器后
0 CAPABILITY
-3
dc at aufruhr dot com
21 年前
好的,此错误仅在您的邮箱上没有配额时才会发生。

imap_get_quotaroot() 也是如此。
To Top