如果您在使用 imap_mail_copy 和 imap_mail_move 時遇到問題,請檢查您是否安裝了 imap_devel(imap 開發函式庫)以及 imap(imap 常駐程式)。如果沒有它,PHP 似乎可以使用 --with-imap 正確配置,但某些函式無法運作。
我花了大約 12 個小時才弄清楚!
(PHP 4, PHP 5, PHP 7, PHP 8)
imap_mail_copy — 將指定訊息複製到信箱
將 message_nums
指定的郵件訊息複製到指定的信箱。
imap
一個 IMAP\Connection 實例。
message_nums
message_nums
是一個範圍,而不僅僅是訊息編號(如 » RFC2060 中所述)。
mailbox
信箱名稱,詳情請參閱 imap_open()。
除非停用 imap.enable_insecure_rsh,否則將不受信任的資料傳遞給此參數是*不安全的*。
flags
flags
是一個包含以下一或多個值的位元遮罩:
CP_UID
- 序列號包含 UID
CP_MOVE
- 複製後從目前的信箱中刪除訊息。如果設定此旗標,則此函式的行為與 imap_mail_move() 相同。
版本 | 說明 |
---|---|
8.1.0 | imap 參數現在需要一個 IMAP\Connection 實例;以前需要一個有效的 imap 資源。 |
如果您在使用 imap_mail_copy 和 imap_mail_move 時遇到問題,請檢查您是否安裝了 imap_devel(imap 開發函式庫)以及 imap(imap 常駐程式)。如果沒有它,PHP 似乎可以使用 --with-imap 正確配置,但某些函式無法運作。
我花了大約 12 個小時才弄清楚!
經過一番摸索,imap_mail_copy 對我來說確實有效。如果您遇到問題,您可能需要檢查新信箱的名稱。確保它只是一個資料夾名稱,例如 INBOX.haha,不包含伺服器部分。
當我們想要複製多封郵件時,我們可以在 msg_num 之前寫上 '(string)'。就像這樣..
$msg_num = "1,2,3,4,5,6,7";
$copy = imap_mail_copy($imap_stream, (string) $msg_num, '[Gmail]/Important', CP_UID);