<?php /* *получение письма по протоколу pop3 *автор: disable *07.09.07 */ //задаем форматированный вывод, чтобы удобнее было читать ответы по строкам echo '<pre>'; $login='example@mail.ru'; $pass='*******'; //подключаемся к серверу $f=fsockopen('pop.mail.ru',110,$errno,$errstr,10); if(!$f) { die("Не удается подключиться к pop.mail.ru: [$errno] $errstr"); } /* *читаем статус ответа, он может быть либо +OK, либо -ERR */ echo $s=fgets($f); if (strpos($s,'+OK')!==0) die('ошибка подключения'); //авторизируемся, для этого надо отправить имя пользователя fwrite($f,"USER $login\r\n"); //отправляем пароль fwrite($f,"PASS $pass\r\n"); echo $s=fgets($f); /* *если авторизация успешна, то сервер выбросит сколько писем в ящике, *иначе будет ошибка авторизации */ echo $s=fgets($f); if (strpos($s,'+OK')!==0) die('ошибка авторизации'); //для примера получим первое сообщение командой TOP 1 1000(если задать много строк, то возвратится все сообщение. // Для получения сообщения целиком можно также воспользоваться командой RETR 1, в данном случаи, если сообщение короче 1000 строк это тоже самое) //сначала будут идти заголовки, потом пуcтая строка \r\n, потом само сообщение //многострочные ответы почтовый сервер завершает строкой .\r\n //посылка команды fwrite($f,"TOP 1 1000\r\n"); $msg=''; $head=''; //чтение ответа while (false!==($s=fgets($f))) { //строка .\r\n данные закончились if ($s===".\r\n") break; //строка \r\n, заголовки закончились if ($s=="\r\n" && !$msg) $msg=' '; if (!$msg) $head.=$s; else $msg.=$s; } //выводим сообщение и заголовки echo trim($head); echo "\n\n---конец заголовков---\n\n"; echo trim($msg); ?>