{% else-1 %}
..

                        
<?php
/*
*получение письма по протоколу pop3
*автор: disable
*07.09.07
*/
//задаем форматированный вывод, чтобы удобнее было читать ответы по строкам
echo '<pre>' ;
$login = '[email protected]' ;
$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 );
?>
0 38 0
Без комментариев...