PHP Conference Japan 2024

imap_savebody

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

imap_savebody將指定的郵件本文儲存到檔案

說明

imap_savebody(
    IMAP\連線 $imap,
    資源|字串|整數 $file,
    整數 $message_num,
    字串 $section = "",
    整數 $flags = 0
): 布林值

儲存指定郵件的整個或部分本文。

參數

imap

一個 IMAP\連線 實例。

file

儲存檔案的路徑字串,或由 fopen() 返回的有效檔案描述符。

message_num

訊息編號

section

部件編號。它是由句點分隔的整數字串,根據 IMAP4 規範索引到訊息主體部件列表。

flags

具有以下一或多個選項的位元遮罩

  • FT_UID - message_num 為 UID
  • FT_PEEK - 如果尚未設定,則不要設定 \Seen 旗標
  • FT_INTERNAL - 返回字串為內部格式,不會正規化為 CRLF。

返回值

成功時返回 true,失敗時返回 false

更新日誌

版本 說明
8.1.0 imap 參數現在需要一個 IMAP\Connection 實例;以前,需要一個有效的 imap 資源

另請參閱

新增筆記

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

anon
12 年前
使用 imap_fetchbody() 可能會因為使用過多記憶體而遇到問題。使用 imap_savebody() 可以避免這個問題。

但內容會被編碼,換句話說,它是無用的。新增過濾器可以有所幫助。

<?php
$whandle
= fopen('./incomming/tmp.tif','w');

stream_filter_append($whandle,
'convert.base64-decode',STREAM_FILTER_WRITE);

imap_savebody ($mbox, $whandle, $i, $partcounter++);

fclose($whandle);
?>

注意:要找到合適的過濾器,您需要檢查主體結構給出的編碼。
To Top