IliaK
Новичок
проверка почты
здравствуйте. написал простейший скрипт проверки почты:
если новых писем нет - всё в порядке;
проблемы начинаются если новые письма есть - некоторое время "ничего не происходит", затем отдаётся пустая страница.
в error_log сервера ничего интересного.
подскажите, что я делаю не так?
здравствуйте. написал простейший скрипт проверки почты:
PHP:
<?php
// main settings
$server = 'some.server'; // mail server
$login = 'some.login'; // login on server
$password = 'some.password'; // password on server
print "<pre>\n";
$fp = fsockopen( "$server", 110, $errno, $errdesc, 10);
if ( !$fp )
die("cannot connect to $server\n$errno\n$errdesc\n\n");
$line = fgets($fp, 1024);
$status = explode(" ", $line);
if ( $status[0] != '+OK' )
{
fputs($fp, "quit");
die("error: $line\n\n");
}
fputs($fp, "USER $login\n");
$line = fgets($fp, 1024);
$status = explode(" ", $line);
if ( $status[0] != '+OK' )
{
fputs($fp, "quit");
die("error: invalid login, $line\n\n");
}
fputs($fp, "PASS $password\n");
$line = fgets($fp, 1024);
$status = explode(" ", $line);
if ( $status[0] != '+OK' )
{
fputs($fp, "quit");
die("error: invalid password, $line\n\n");
}
fputs($fp, "STAT\n");
$line = fgets($fp, 1024);
$status = explode(" ", $line);
if ( $status[0] != '+OK' )
{
fputs($fp, "quit");
die("error: $line\n\n");
}
if ( $status[1] != '0' )
{
// смотрим письма
print "новые письма есть<br>";
for ( $counter = '1'; $counter<=$status[1]; $counter++ )
{
fputs($fp, "RETR $counter\n");
do
{
$line=fgets($fp, 1024);
print("$line\n");
}
while ( $line != '.' );
print "<hr>";
}
}
else
{
fputs($fp, "quit");
die("новых писем нет");
}
?>
проблемы начинаются если новые письма есть - некоторое время "ничего не происходит", затем отдаётся пустая страница.
в error_log сервера ничего интересного.
подскажите, что я делаю не так?