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);
(PHP 4, PHP 5, PHP 7, PHP 8)
imap_delete — 現在のメールボックスから削除するメッセージに印を付ける
message_nums
が指すメッセージに
削除予定のマークをします。削除マークを付けられたメッセージは、
imap_expunge() がコールされるか
imap_close() に CL_EXPUNGE
を付けてコールされるかのどちらかが行われるまでメールボックスに残ったままになります。
imap
IMAP\Connection クラスのインスタンス。
message_nums
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("接続できません: " . 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() をコールする必要があります。