该函数使用邮件编号(而不是 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() 以确保标记为删除的邮件确实会被清除。