imap 的全名是 internet message access protocol,即網際網絡信息存取協議,為美國史丹福大學 (stanford university) 在 1986 年開始研發的多重郵箱電子郵件系統。php 所提供的功能是 imap 4 的系統,這是根據 rfc 1730 所實作的。更多有關 imap 的信息可以參考 imap 的官方網站 http://www.imap.org 。
欲使用 imap 的電子郵件功能,要先到 ftp://ftp.cac.washington.edu/imap 下載 imap 的客戶端程序。在編譯完成之後將 c-client/c-client.a 復制到 /usr/local/lib 之中,並將 c-client/rfc822.h、mail.h 及 linkage.h 三個文件復制到 /usr/local/include 之下。之後編譯 php 程序時要加入 –with-imap 的選項。
imap_append : 附加字符串到指定的郵箱中。
imap_base64 : 解 base64 編碼。
imap_body : 讀信的內文。
imap_check : 返回郵箱信息。
imap_close : 關閉 imap 鏈接。
imap_createmailbox : 建立新的信箱。
imap_delete : 標記欲刪除郵件。
imap_deletemailbox : 刪除既有信箱。
imap_expunge : 刪除已標記的郵件。
imap_fetchbody : 從信件內文取出指定部分。
imap_fetchstructure : 獲取某信件的結構信息。
imap_header : 獲取某信件的標頭信息。
imap_headers : 獲取全部信件的標頭信息。
imap_listmailbox : 獲取郵箱列示。
imap_listsubscribed : 獲取訂閱郵箱列示。
imap_mail_copy : 復制指定信件到它處郵箱。
imap_mail_move : 移動指定信件到它處郵箱。
imap_num_msg : 取得信件數。
imap_num_recent : 取得新進信件數。
imap_open : 打開 imap 鏈接。
imap_ping : 檢查 imap 是否連接。
imap_renamemailbox : 更改郵箱名字。
imap_reopen : 重開 imap 鏈接。
imap_subscribe : 訂閱郵箱。
imap_undelete : 取消刪除郵件標記。
imap_unsubscribe : 取消訂閱郵箱。
imap_qprint : 將 qp 編碼轉成八位。
imap_8bit : 將八位轉成 qp 編碼。
imap_binary : 將八位轉成 base64 編碼。
imap_scanmailbox : 尋找信件有無特定字符串。
imap_mailboxmsginfo : 取得目前郵箱的信息。
imap_rfc822_write_address : 電子郵件位址標准化。
imap_rfc822_parse_adrlist : 解析電子郵件位址。
imap_setflag_full : 配置信件標志。
imap_clearflag_full : 清除信件標志。
imap_sort : 將信件標頭排序。
imap_fetchheader : 取得原始標頭。
imap_uid : 取得信件 uid。
imap_getmailboxes : 取得全部信件詳細信息。
imap_getsubscribed : 列出所有訂閱郵箱。
imap_msgno : 列出 uid 的連續信件。
imap_search : 搜尋指定標准的信件。
imap_last_error : 最後的錯誤信息。
imap_errors : 所有的錯誤信息。
imap_alerts : 所有的警告信息。
imap_status : 目前的狀態信息。
imap_append
附加字符串到指定的郵箱中。
語法: int imap_append(int imap_stream, string mbox, string message, string [flags]);
返回值: 整數
函數種類: 網絡系統
內 容說明: 本函數可在指定的電子郵箱中增加附加的字符串。參數 imap_stream 為 imap 的代號。參數 mbox 為電子郵箱的位址。參數 message 為欲附加的信息。參數 flag 為可省略的標志,表示電子郵箱的標志值。治募 注意的是要與 cyrus imap 服務器溝通時,應使用 \r\n 作為行結束字符 (end-of-line, eol)。若有錯誤則返回 false 值。
imap_base64
解 base64 編碼。
語法: string imap_base64(string text);
返回值: 字符串
函數種類: 網絡系統
內容說明: 本函數可將用 base64 編碼字符串解碼。返回值是解碼後的字符串。
參考 imap_binary() base64_encode() base64_decode()
imap_body
讀信的內文。
語法: string imap_body(int imap_stream, int msg_number, int [flags]);
返回值: 字符串
函數種類: 網絡系統
內容說明
本函數可讀取信件的內文 (body) 部份。參數 imap_stream 為 imap 的代號。參數 msg_number 為信件的序號。參數 flags 可省略,有下列的值
ft_uid : 信件序號為 uid。
ft_peek : 若無配置 \seen 標志則不要設本標志。
ft_internal : 返回字符串使用系統格式,不要刻意轉成 crlf 行結束標准。
使用范例
本例利用 imap 協議讀取 myid@localhost 的第一封信件。
imap_check
返回郵箱信息。
語法: object imap_check(int imap_stream);
返回值: 類
函數種類: 網絡系統
內容說明: 本函數可取得目前電子郵箱的信息。返回值為類類型,包含下面的屬性
date最新郵件的日期driver使用的界面mailbox電子郵箱網址nmsgs總郵件數目recent新進郵件數目
類屬性 代表意義說明
參考 imap_mailboxmsginfo()
imap_close
關閉 imap 鏈接。
語法: int imap_close(int imap_stream, int [flags]);
返回值: 整數
函數種類: 網絡系統
內容說明: 本函數用來關閉 imap 的資料流,亦即結束鏈接。可省略的參數 flags 的值若為 cl_expunge 則在關閉鏈接前會將電子郵件信箱清空。
imap_createmailbox
建立新的信箱。
語法: int imap_createmailbox(int imap_stream, string mbox);
返回值: 整數
函數種類: 網絡系統
內容說明
本函數用來建立新的信箱。成功則返回 true 值。
imap_delete
標記欲刪除郵件。
語法: int imap_delete(int imap_stream, int msg_number);
返回值: 整數
函數種類: 網絡系統
內容說明
本函數僅用來標記欲刪除之郵件。實際刪除的指令 imap_expunge()
imap_deletemailbox
刪除既有信箱。
語法: int imap_deletemailbox(int imap_stream, string mbox);
返回值: 整數
函數種類: 網絡系統
內容說明: 本函數用來刪除既有的信箱。成功則返回 true 值。
imap_expunge
刪除已標記的郵件。
語法: int imap_expunge(int imap_stream);