PHP使用POP3讀取郵箱接收郵件的示例代碼
直接上代碼:
<?php$array_values[’host’] = 'host';$array_values[’port’] = 110;$array_values[’user’] = ’用戶名’;$array_values[’password’] = ’密碼’;$array_values[’checkmail’] = ’xxx@xxx.xxx’;ganji_get_test_mail($array_values);function ganji_get_test_mail($array_values){ $host = $array_values[’host’]; $port = $array_values[’port’]; $user = $array_values[’user’]; $password = $array_values[’password’]; $checkmail = $array_values[’checkmail’]; $msg = ’’; $return_msg = ’’; // ini_set(’memory_limit’, ’80M’); if (! ($sock = fsockopen(gethostbyname($host), $port, $errno, $errstr))) { exit($errno . ’: ’ . $errstr); } set_socket_blocking($sock, true); $command = 'USER ' . $user . 'rn'; fwrite($sock, $command); $msg = fgets($sock); $command = 'PASS ' . $password . 'rn'; fwrite($sock, $command); $msg = fgets($sock); $command = 'statrn'; fwrite($sock, $command); $return_msg = fgets($sock); $msg = fgets($sock); $command = 'LISTrn'; fwrite($sock, $command); $all_mails = array(); while (true) { $msg = fgets($sock); if (! preg_match(’/^+OK/’, $msg) && ! preg_match(’/^./’, $msg)) { $msg = preg_replace(’/ .*rn/’, ’’, $msg); array_push($all_mails, $msg); } if (preg_match(’/^./’, $msg)) break; } // 獲取郵件列表 $ganji_mails = array(); foreach ($all_mails as $item) { fwrite($sock, 'TOP $item 0rn'); while (true) { $msg = fgets($sock); // echo $msg . '<Br><Br>'; if (preg_match(’/^./’, $msg)) {array_push($ganji_mails, $item);break; } } continue; } $mail_content = ’’; $array_ganji_mails = array(); //逐行遍歷 foreach ($ganji_mails as $item) { fwrite($sock, 'RETR $itemrn'); while (true) { $msg = fgets($sock); $mail_content .= $msg; if (preg_match(’/^./’, $msg)) {array_push($array_ganji_mails, iconv_mime_decode_headers($mail_content, 0, 'UTF-8'));$mail_content = ’’;break; } } } // 直接獲取第一封郵件全部信息 9999長(zhǎng)度 fwrite($sock, 'RETR 1rn'); $mail_contents = fread($sock, 9999); // 直接獲取全部 echo '<br>'; var_dump($mail_contents); echo '<br>'; $command = 'QUITrn'; fwrite($sock, $command); $msg = fgets($sock); return $mail_contents;}
常用的POP3命令介紹 :
命令 參數(shù) 狀態(tài) 描述 USER username 認(rèn)可 此命令與下面的pass命令若成功,將導(dǎo)致?tīng)顟B(tài)轉(zhuǎn)換 PASS password 認(rèn)可 APOP Name,Digest 認(rèn)可 Digest是MD5消息摘要 STAT None 處理 請(qǐng)求服務(wù)器發(fā)回關(guān)于郵箱的統(tǒng)計(jì)資料,如郵件總數(shù)和總字節(jié)數(shù) UIDL [Msg#] 處理 返回郵件的唯一標(biāo)識(shí)符,POP3會(huì)話的每個(gè)標(biāo)識(shí)符都將是唯一的 LIST [Msg#] 處理 返回郵件數(shù)量和每個(gè)郵件的大小 RETR [Msg#] 處理 返回由參數(shù)標(biāo)識(shí)的郵件的全部文本 DELE [Msg#] 處理 服務(wù)器將由參數(shù)標(biāo)識(shí)的郵件標(biāo)記為刪除,由quit命令執(zhí)行 RSET None 處理 服務(wù)器將重置所有標(biāo)記為刪除的郵件,用于撤消DELE命令 TOP [Msg#] 處理 服務(wù)器將返回由參數(shù)標(biāo)識(shí)的郵件前n行內(nèi)容,n必須是正整數(shù) NOOP None 處理 服務(wù)器返回一個(gè)肯定的響應(yīng),不做任何操作。 QUIT None 更新 退出以上就是PHP使用POP3讀取郵箱接收郵件的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于PHP讀取郵箱接收郵件的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. XHTML 1.0:標(biāo)記新的開(kāi)端2. ASP中實(shí)現(xiàn)字符部位類似.NET里String對(duì)象的PadLeft和PadRight函數(shù)3. phpstudy apache開(kāi)啟ssi使用詳解4. XML入門精解之結(jié)構(gòu)與語(yǔ)法5. 概述IE和SQL2k開(kāi)發(fā)一個(gè)XML聊天程序6. 簡(jiǎn)單了解XML 樹(shù)結(jié)構(gòu)7. CSS3使用過(guò)度動(dòng)畫(huà)和緩動(dòng)效果案例講解8. XML解析錯(cuò)誤:未組織好 的解決辦法9. jsp+servlet實(shí)現(xiàn)猜數(shù)字游戲10. ASP的Global.asa文件技巧用法
