|
|
|
|
|
для: kasmanaft
(13.10.2006 в 12:35)
| | Да, действительно. Почти наверняка сервер ожидает конца строки.
Только не \n а \r\n
fwrite($fp, "USER ziq@list.ru\r\n");
|
| |
|
|
|
|
|
|
|
для: Ziq
(12.10.2006 в 23:01)
| | >> закрыть соединение и ....
я имел ввиду QUIT послать ...
а LIST можно читать до тех пор, пока не встретим точку:
while (trim($str) != '.')
$str = fgets($fp, 128);
|
еще вы забыли про " \n " ... "Maximum execution time" тут наверное из-за етого
fwrite($fp, "USER ziq@list.ru\n");
|
(аналогично в остальных случаях) | |
|
|
|
|
|
|
|
для: Ziq
(12.10.2006 в 23:01)
| | Уберите команду LIST
Это команда с многострочным ответом, и его Вы до конца не считываете. Отсюда и проблемы.
Кроме того, Вы переусердствовали с ограничением: 4 секунды на всю сессию может и не хватить. | |
|
|
|
|
|
|
|
для: kasmanaft
(12.10.2006 в 22:40)
| | изменил код на
<?
$fp = fsockopen("pop.list.ru", 110, $errno, $errstr);
if(!$fp) echo $errstr.'dd';
fwrite($fp, "USER ziq@list.ru");
echo fgets($fp, 128)."a";
fwrite($fp, "PASS sdfdsfdsf");
echo fgets($fp, 128)."s";
fwrite($fp, "LIST");
echo fgets($fp, 128)."d";
fwrite($fp, "QUIT");
echo fgets($fp, 128)."f";
fclose($fp);
?>
|
ответ
+OK a
Fatal error: Maximum execution time of 4 seconds exceeded in D:\www\lab\index.php on line 11
|
Вы говорили закрыть соединение и читать уже while (!feof($fp)). Если закрыть соединение (fclose()), то feof() выдает ошибку. | |
|
|
|
|
|
|
|
для: kasmanaft
(12.10.2006 в 22:40)
| | ... | |
|
|
|
|
|
|
|
для: Ziq
(12.10.2006 в 22:36)
| | while (!feof($fp)) здесь не пройдет ..
в данном случае можно попробовать просто fgets($fp);
или послать кучу команд, закрыть соединение и читать уже while (!feof($fp)) | |
|
|
|
|
|
|
|
для: Trianon
(12.10.2006 в 09:29)
| | попытался что-то сделать короче вот
<?
$fp = fsockopen("pop.list.ru", 110, $errno, $errstr);
if(!$fp) echo $errstr.'dd';
fwrite($fp, "USER ziq@list.ru");
while (!feof($fp)) {
echo fgets($fp, 128);
}
f
echo fgets($fp, 128);
}
fclose($fp);
?>
|
ответ такой
+OK
Fatal error: Maximum execution time of 30 seconds exceeded in D:\www\lab\index.php on line 7
|
Что не так делаю? Помогите, пожалуйста. | |
|
|
|
|
|
|
|
для: Ziq
(11.10.2006 в 22:42)
| | порт сервера POP3 - 110.
В остальном Вы идете в верном направлении.
Устанавливать соединение нужно с помощью fsockopen
Отправлять команды - с помощью fwrite
Принимать ответы - с помощью fgets
Обратите внимание на то, что некоторые команды выдают ответ одной строкой,
а некоорые другие - многострочный ответ, заканчивающийся строкой с точкой. | |
|
|
|
|
|
|
|
для: cheops
(11.10.2006 в 22:37)
| | Честно говоря я не знаю просто что лучше. Где-то читал на форуме, что самый простой способ это POP3 вот и решил начать с простого. | |
|
|
|
|
|
|
|
для: Ziq
(11.10.2006 в 21:47)
| | Хм... почту лучше с помощью IMAP получать - она всё равно на сервере хранится. | |
|
|
|
|