该函数使用邮件编号(而不是 uid!)
$uid = $mail->uid;
$msgno = $mail->msgno;
如果要使用 uid,只需使用选项值
imap_delete($mbox, $uid, FT_UID);(PHP 4, PHP 5, PHP 7, PHP 8)
imap_delete — 将邮件标记为从当前邮箱中删除
将 message_nums 中列出的邮件标记为删除。标记为删除的邮件将保留在邮箱中,直到调用 imap_expunge() 或使用可选参数 CL_EXPUNGE 调用 imap_close()。
imap一个 IMAP\Connection 实例。
message_nums一个 string,表示一个或多个以 IMAP4 样式序列格式 ("n"、"n:m" 或这些格式用逗号分隔的组合) 表示的邮件。
flags您可以设置 FT_UID,它告诉函数将 message_nums 参数视为 UID。
始终返回 true。
如果 flags 无效,则抛出 ValueError。
| 版本 | 描述 |
|---|---|
| 8.1.0 | imap 参数现在期望一个 IMAP\Connection 实例;之前,期望一个有效的 imap 资源。 |
| 8.0.0 | 现在,对于无效的 flags 参数值,会抛出 ValueError。之前,会发出警告,并且函数返回 false。 |
示例 #1 imap_delete() 示例
<?php
$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
or die("Can't connect: " . imap_last_error());
$check = imap_mailboxmsginfo($mbox);
echo "删除前的邮件数: " . $check->Nmsgs . "<br />\n";
imap_delete($mbox, 1);
$check = imap_mailboxmsginfo($mbox);
echo "删除后的邮件数: " . $check->Nmsgs . "<br />\n";
imap_expunge($mbox);
$check = imap_mailboxmsginfo($mbox);
echo "清空后邮件数: " . $check->Nmsgs . "<br />\n";
imap_close($mbox);
?>注意:
IMAP 邮箱可能不会在连接之间保存其邮件标志,因此应在同一连接期间调用 imap_expunge() 以确保标记为删除的邮件确实会被清除。