お久しぶりです。
とりあえず、phpでpop接続してメールの内容を取得するんご!
<?php $host = "ssl://[ホスト名]"; $port = "[ポート番号]"; $user = "[ユーザー名]"; $pass = "[パスワード]"; // 接続 $con = fsockopen( $host, $port, $err, $errno ); // 認証ユーザー fputs($con, "USER {$user}\r\n"); $buf = fgets($con, 512); // 認証パスワード fputs($con, "PASS {$pass}\r\n"); $buf = fgets($con, 512); // メールメッセージの数とサイズを応答する fputs($con, "STAT\r\n"); $buf = fgets($con, 512); $tmp = explode(" ",$buf); if ($tmp[1] == "Logged"){ $buf = fgets($con, 512); $tmp = explode(" ",$buf); } if ($tmp[1] == 0){ // メッセージがない場合は、接続を閉じる fputs($con, "QUIT\r\n"); $buf = fgets($con, 512); exit; } // 指定されたメッセージ番号のメッセージ全体を表示する fputs($con, "RETR 1\r\n"); // 今回は1番のを取得 $buf = fgets($con, 512); $data=''; while ( !feof($con) ) { $meta_data = stream_get_meta_data($con); if($meta_data["timed_out"]) break; $line = fgets($con); if($line === false || preg_match("/^\.\r\n/", $line)) break; $line = preg_replace("/^\.\./", ".", $line); $data .= $line; } // 接続を閉じる fputs($con, "QUIT\r\n"); $buf = fgets($con, 512);
$dataはメールのヘッダー部分が含まれているのでヘッダー部分とボディー部分を分離する必要がある。
で、ボディーの部分がヘッダー部分で書かれているContent-Typeのcharsetの文字コードになっているので、プログラムがUTF-8の場合は、扱いやすいようにUTF-8へしてあげるといいのかな。