PHP Conference Nagoya 2025

imap_delete

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

imap_deleteMark a message for deletion from current mailbox

说明

imap_delete(IMAP\Connection $imap, string $message_nums, int $flags = 0): true

Marks messages listed in message_nums for deletion. Messages marked for deletion will stay in the mailbox until either imap_expunge() is called or imap_close() is called with the optional parameter CL_EXPUNGE.

参数

imap

IMAP\Connection 实例。

message_nums

A string representing one or more messages in IMAP4-style sequence format ("n", "n:m", or combination of these delimited by commas).

flags

You can set the FT_UID which tells the function to treat the message_nums argument as a UID.

返回值

总是返回 true

错误/异常

Throws a ValueError if flags is invalid.

更新日志

版本 说明
8.1.0 现在 imap 参数接受 IMAP\Connection 实例,之前接受有效的 imap resource
8.0.0 A ValueError is now thrown on invalid flags parameter values. Previously, a warning was emitted and the function returned false.

示例

示例 #1 imap_delete() example

<?php

$mbox
= imap_open("{imap.example.org}INBOX", "username", "password")
or die(
"Can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);
echo
"Messages before delete: " . $check->Nmsgs . "<br />\n";

imap_delete($mbox, 1);

$check = imap_mailboxmsginfo($mbox);
echo
"Messages after delete: " . $check->Nmsgs . "<br />\n";

imap_expunge($mbox);

$check = imap_mailboxmsginfo($mbox);
echo
"Messages after expunge: " . $check->Nmsgs . "<br />\n";

imap_close($mbox);
?>

注释

注意:

IMAP mailboxes may not have their message flags saved between connections, so imap_expunge() should be called during the same connection in order to guarantee that messages marked for deletion will actually be purged.

参见

添加备注

用户贡献的备注 1 note

up
7
erational
11 years ago
the function is using the message number (and not the uid !)
$uid = $mail->uid;
$msgno = $mail->msgno;

if you want to use the uid, simply option value
imap_delete($mbox, $uid, FT_UID);
To Top