PHP Conference Japan 2024

imap_rfc822_parse_headers

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

imap_rfc822_parse_headers從字串解析郵件標頭

說明

imap_rfc822_parse_headers(字串 $headers, 字串 $default_hostname = "UNKNOWN"): stdClass

取得包含各種標頭元素的物件,類似於 imap_header()

參數

headers

已解析的標頭資料

default_hostname

預設主機名稱

傳回值

傳回一個類似於 imap_header() 所傳回的物件,除了來自 IMAP 伺服器的旗標和其他屬性之外。

參見

新增筆記

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

Kevin Casper <casperke at gmail dot com>
19 年前
我稍微探究了這個函式的行為。

它處理 rfc882 欄位

日期
主旨
訊息 ID
收件者
寄件者
回覆地址
寄件人 - 如果標頭中沒有,將使用「寄件者」欄位產生
標頭
參考
回覆
副本

不處理 rfc882 欄位
退信地址
已接收
轉寄 - 我認為這個欄位可能已經過時
關鍵字

如果有其他 rfc822 欄位或函式行為,我無法說明它們,因為它們不在我的測試中。
由於它與我目前正在做的事情相關,我可能會不時新增更多關於這個函式的資訊。
Marco Arment
14 年前
如果傳遞給它的文字超過內部 16 KB 緩衝區 (原始碼中的 SENDBUFLEN),這個函式將導致 PHP 致命錯誤。

我還沒有深入研究,但將輸入文字限制在少於 16,384 個字元仍然在我們的伺服器上產生了一個錯誤案例,但將限制降低到 12,000 個字元就解決了這個問題。

大多數實際的郵件標頭都遠低於 4 KB。
phrank
15 年前
這個函式被 c-client 函式庫標記為內部函式,不應該直接被 PHP 使用。

請注意,結果將始終包含訊息中未設定的欄位。例如,即使訊息中沒有定義 Reply-To 和 Sender 標頭欄位,reply_to 和 sender 也會始終被設定。
Sven dot Dickert at planb dot de
22 年前
從 imap_rfc822_parse_headers 獲得的物件與從 imap_headerinfo/imap_header 獲得的物件在以下幾點不同。你不會得到
* 旗標
* 訊息編號
* 大小
* 郵件日期
* Unix 時間戳記
* 擷取來源
* 擷取主旨

Unix 時間戳記可以用以下方式模擬
$headerobj=imap_rfc822_parse_headers ($header);
$udate=strtotime($headerobj->date);
To Top