PHP Conference Japan 2024

imap_delete

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

imap_delete標記訊息以從目前信箱中刪除

說明

imap_delete(IMAP\Connection $imap, 字串 $message_nums, 整數 $flags = 0): true

標記 message_nums 中列出的訊息以進行刪除。標記為刪除的訊息將保留在信箱中,直到呼叫 imap_expunge() 或使用可選參數 CL_EXPUNGE 呼叫 imap_close() 為止。

參數

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
"刪除前的訊息數量: " . $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() 應該在同一個連線期間被呼叫,以確保標記為刪除的訊息實際上會被清除。

參見

新增筆記

使用者貢獻的筆記 1 則筆記

erational
11 年前
此函式使用的是訊息編號(而不是 uid!)
$uid = $mail->uid;
$msgno = $mail->msgno;

如果您想使用 uid,只需設定選項值
imap_delete($mbox, $uid, FT_UID);
To Top