TOEIC、ソフトウェア開発技術者試験申し込みました。
そろそろ本格的に勉強しないとね。
今日はPHPからPOPサーバーに接続する方法を紹介しましょう。

筆者は以下のようにやってみました。

<?php
$host = "localhost" // 接続ホスト
$user = "user"; // ユーザー名
$pass = "pass"; // パスワード
$sock = fsockopen($host,110,$err,$errno,10) or exit("can't connect pop server");
$buffer = fgets($sock,512);
if(substr($buffer,0,3) != '+OK') exit($buffer);
$buffer = sendmsg("USER $user");
$buffer = sendmsg("PASS $pass");
$data = sendmsg("STAT");
print $data;
sscanf($data,'+OK %d %d',$num,$size);
if($num == "0"){
  $buffer = sendmsg("QUIT");
  fclose($sock);
  exit;
}

for($i=1;$i<=$num;$i++){
  $line = sendmsg("RETR $i");
    while(!ereg("^\.\r\n",$line)){
      $line = fgets($sock,512);
      $msg[$i] .= $line;
    }
}

$buffer = sendmsg("QUIT");
fclose($sock);

// $msg に配列として格納されます

function sendmsg($command){ // コマンド送信関数
  global $sock;
  fputs($sock,$command."\r\n");
  $buffer = fgets($sock,512);
  if(substr($buffer,0,3) == '+OK'){
      return $buffer;
  } else {
      exit($buffer);
  }
  return false;
}

?>