2024 年 PHP Conference Japan

imap_setflag_full

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

imap_setflag_full設定訊息的旗標

說明

imap_setflag_full(
    IMAP\Connection $imap,
    字串 $sequence,
    字串 $flag,
    整數 $options = 0
): true

使郵件儲存區將指定的 flag 加入指定 sequence 中郵件的旗標集合。

參數

imap

一個 IMAP\Connection 實例。

sequence

郵件序號序列。您可以使用 X,Y 語法枚舉所需的郵件,或使用 X:Y 語法擷取區間內的所有郵件。

flag

您可以設定的旗標有 \Seen(已讀)、\Answered(已回覆)、\Flagged(已標記)、\Deleted(已刪除)和 \Draft(草稿),如 » RFC2060 中所定義。

options

一個位元遮罩,可以包含單個選項

  • ST_UID - sequence 參數包含的是 UID 而不是序號

返回值

永遠返回 true

錯誤/異常

如果 options 無效,則拋出 ValueError

更新日誌

版本 說明
8.1.0 imap 參數現在需要一個 IMAP\Connection 實例;以前需要一個有效的 imap 資源
8.0.0 現在,如果 options 參數值無效,則會拋出 ValueError。以前,會發出警告並返回 false

範例

範例 #1 imap_setflag_full() 範例

<?php
$mbox
= imap_open("{imap.example.org:143}", "username", "password")
or die(
"無法連線: " . imap_last_error());

$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");

echo
gettype($status) . "\n";
echo
$status . "\n";

imap_close($mbox);
?>

參見

新增筆記

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

AJCartmell at ricardo dot com
22 年前
花了好長時間才讓它運作,最後才想起我以唯讀模式開啟了信箱 - 顯然設定旗標需要寫入權限!
daniel dot blackburn at galorwebservices dot com
14 年前
如果可以,我會避免使用 POP3 帳號。我的主機允許我升級到 IMAP,而且它容易使用多了。我認為用 POP3 準確建立任何形式的郵件客戶端的唯一方法是將訊息下載到 SQL 資料庫中,這是一項艱鉅的任務,尤其考量到 IMAP 標準內建了我們所需的功能。
我試驗了 POP3 中的旗標設定,它們似乎根本不會保留,而且幾乎不可能取得未讀訊息的數量(例如,已讀/未讀的功能無法運作)
轉換到 IMAP 後就正常運作了 - 本節中的大多數函式似乎都以 IMAP 為主,而且通常無法與 POP3 搭配使用
To Top