imap_expunge

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

imap_expunge删除所有标记为已删除的消息

描述

imap_expunge(IMAP\Connection $imap): true

删除所有通过 imap_delete()imap_mail_move()imap_setflag_full() 标记为已删除的消息。

参数

imap

一个 IMAP\Connection 实例。

返回值

始终返回 true

变更日志

版本 描述
8.1.0 imap 参数现在期望一个 IMAP\Connection 实例;以前,期望一个有效的 imap 资源
添加笔记

用户贡献的笔记 2 个笔记

boswachter at xs4all dot nl
18 年前
@eisbrenner at gidn dot de

您不应该在关闭连接之前调用 imap_expunge。imap_delete 将消息标记为已删除,imap_expunge 删除所有标记为已删除的消息。即
for ($i = 0; $i < $num; $i++) {
imap_delete($box, $i);
}
imap_expunge($box);

imap_expunge 不应该在您的内部循环中。
Pavel Cernik
8 年前
imap_expunge() 可能会改变使用 imap_sort() 加载的消息顺序。
这意味着,如果您对 imap_sort() 函数的结果使用 foreach(),并且每次循环都移动/删除一条消息并立即将其清除,则在下一循环中,消息将具有与 imap_sort() 返回的不同的编号,并且脚本将失败。
To Top