お久しぶりです。
とりあえず、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へしてあげるといいのかな。