首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

使用 PHP 透過 POP3 協議讀取 163 郵箱郵件

     編輯:PHP 綜合知識

程式碼示範

以下程式碼展示如何使用 fsockopen() 連接 163 POP3 伺服器(pop.163.com:110),進行認證、列出郵件、讀取第一封郵件內容並登出。

<?php
$host     = 'pop.163.com';
$port     = 110;
$user     = '******';   // 替換為您的帳號
$password = '******';   // 替換為您的密碼

// 建立連線
if (!($sock = fsockopen(gethostbyname($host), $port, $errno, $errstr))) {
    exit($errno . ': ' . $errstr);
}
set_socket_blocking($sock, true);

// 讀取歡迎訊息
$msg = fgets($sock);
echo $msg;

// 發送 USER 指令
$command = "user $user\r\n";
fwrite($sock, $command);
$msg = fgets($sock);
echo $msg;

// 發送 PASS 指令
$command = "pass $password\r\n";
fwrite($sock, $command);
$msg = fgets($sock);
echo $msg;

// 發送 STAT 指令獲取郵件統計
$command = "stat\r\n";
fwrite($sock, $command);
$msg = fgets($sock);
echo $msg;

// 發送 LIST 指令列出所有郵件
$command = "list\r\n";
fwrite($sock, $command);
while (true) {
    $msg = fgets($sock);
    echo $msg;
    if (preg_match('/^\./', $msg)) break; // 以單獨一行 "." 結束
}

// 讀取第一封郵件 (RETR 1)
$command = "retr 1\r\n";
fwrite($sock, $command);
while (true) {
    $msg = fgets($sock);
    echo $msg;
    if (preg_match('/^\.(\r\n)$/', $msg)) break; // 結束標記
}

// 發送 QUIT 指令登出
$command = "quit\r\n";
fwrite($sock, $command);
$msg = fgets($sock);
echo $msg;
?>

說明

  • 程式碼採用阻塞模式,逐行讀取伺服器回應。
  • 實際應用中建議加入錯誤處理、逾時控制與 MIME 解碼(參考後續文章)。
  • 請妥善保管帳號密碼,勿硬編碼於程式碼中。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved