imap_deletemailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_deletemailbox删除邮箱

描述

imap_deletemailbox(IMAP\Connection $imap, string $mailbox): bool

删除指定的 mailbox

参数

imap

一个 IMAP\Connection 实例。

mailbox

邮箱名称,有关更多信息,请参见 imap_open()

警告

除非禁用 imap.enable_insecure_rsh,否则将不可信数据传递给此参数是不安全的。

返回值

成功时返回 true,失败时返回 false

变更日志

版本 描述
8.1.0 现在 imap 参数需要一个 IMAP\Connection 实例;以前,需要一个有效的 imap 资源

参见

添加备注

用户贡献的备注 2 个备注

1
kenstumpf<a>hotmail.com
20 年前
最新版本的 Cyrus imapd 将邮箱 ACL 定义如下

c (create)
用户可以创建邮箱的新子邮箱,或删除或重命名当前邮箱。

d (delete)
用户可以存储“已删除”标志并执行清除操作。

这意味着要删除邮箱,您需要通过 imap_open() 连接的用户对邮箱具有“c”权限,才能使 imap_deletemailbox() 工作。为自己设置“d”权限并不相同。

查看您使用的 Cyrus imapd 版本的文档。
0
sanin at kset dot org
17 年前
从 IMAP 服务器删除用户帐户时,请不要忘记添加完整的服务器名称和端口。还需要以 IMAP 管理员身份登录并设置 ACL。
这对 Cyrus 有效

<?php
//凭据
$cyrusadmin_username="cyrus";
$cyrusadmin_password="cyruspassword";
$cyrus_serverip="fellowship.ring.net";

//要删除的用户
$username="frodoBaggins";

//打开到 IMAP 服务器(Cyrus)的连接
$mbox=imap_open("{".$serverip.":143}",$cyrusadmin_username, $cyrusadmin_password, OP_HALFOPEN)
or die(
'IMAP 无法连接,因为 '.imap_last_error());
//设置 ACL - 授予 $cyrusadmin_username 删除邮箱的权限
imap_setacl ($mbox, "user.".$username, $cyrusadmin_username, "lrswipcda")
or die(
'无法在邮箱上设置 acl');
//删除邮箱
imap_deletemailbox($mbox,"{".$serverip.":143}user.".$username)
or die(
'无法删除邮箱');
?>
To Top