imap_delete

Mark a message for deletion from current mailbox

&reftitle.description; `bool` `imap_delete` `IMAP\Connection` `imap` `string` `message_nums` `int` `flags` 0

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`.

&reftitle.parameters;

&imap.imap-parameter.imap;

`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`.

&reftitle.returnvalues;

Returns &true;.

&reftitle.changelog;

&Version; | &Description;
&imap.changelog.imap-param;

&reftitle.examples;

### `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);
    ?>

&reftitle.notes;

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.

&reftitle.seealso;

- `imap_undelete`
- `imap_expunge`
- `imap_close`