imap_delete

現在のメールボックスから削除するメッセージに印を付ける

説明

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

message_nums が指すメッセージに 削除予定のマークをします。削除マークを付けられたメッセージは、 imap_expunge がコールされるか imap_closeCL_EXPUNGE を付けてコールされるかのどちらかが行われるまでメールボックスに残ったままになります。

パラメータ

imap

IMAP\Connection クラスのインスタンス。

message_nums

IMAP4 形式のシーケンスフォーマット ("n", "n:m", またはそれらをカンマで区切ったもの) で表現された、ひとつ以上のメッセージを表す文字列。

flags

FT_UID を指定すると、 引数 message_numsUID として処理することを関数に指示できます。

戻り値

常に 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("接続できません: " . 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 メールボックスは、コネクション間で保存可能なメッセージフラグを持っていません。 そのため、削除マークをつけたメッセージが本当に削除されたことを保証するためには、 同一の接続内で imap_expunge をコールする必要があります。

参考

  • imap_undelete
  • imap_expunge
  • imap_close