PHP 8.4.2 Released!

imap_delete

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

imap_deleteПомечает сообщение для удаления

Описание

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

Помечает сообщения, перечисленные в message_nums для удаления. Помеченные сообщения будут оставаться в ящике пока не будет вызвана функция imap_expunge(), либо imap_close() с установленным параметром CL_EXPUNGE.

Список параметров

imap

Экземпляр класса IMAP\Connection.

message_nums

Строка (string), состоящая из одного или нескольких сообщений в формате последовательности в стиле IMAP4 ("n", "n:m" или их комбинация, разделённая запятыми).

flags

Можно задать как FT_UID, тогда функция будет ожидать в параметре message_nums не номер сообщения, а UID.

Возвращаемые значения

Функция возвращает логическое значение true.

Ошибки

Выбрасывает исключение ValueError, если значение параметра flags недопустимо.

Список изменений

Версия Описание
8.1.0 Параметр imap теперь ожидает экземпляр класса IMAP\Connection; раньше параметр ждал ресурс (resource) imap.
8.0.0 Теперь выбрасывается исключение ValueError, при недопустимых значениях параметра flags. Ранее возникало предупреждение и функция возвращала логическое значение false.

Примеры

Пример #1 Пример использования imap_delete()

<?php

$mbox
= imap_open("{imap.example.org}INBOX", "username", "password")
or die(
"Не удалось подключиться: " . 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() в том же соединении, в котором флаги устанавливались.

Смотрите также

  • imap_undelete() - Снимает с сообщения метку удаления
  • imap_expunge() - Удаляет все помеченные для удаления сообщения
  • imap_close() - Закрывает поток IMAP

Добавить

Примечания пользователей 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