sockets в PHP

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
stasek
Сообщения: 14
Зарегистрирован: 11 фев 2005, 13:02

14 мар 2005, 02:29

У мен возникла необходимость приконектиться к pop серверу и забрать со своего ящика все письма. Для данной задачи я выбрал сокеты, а именно функцию fsockopen(). Пытаюсь авторизироваться с сервером так:

$sock = fsockopen ("pop.mail.ru", 110, $errno, $errstr, 30);
if (!$sock) {
echo "$errstr ($errno)
\n";
}
else {
fputs ($sock, "USER mylogin");
if (!$sock)
{
echo "$errstr ($errno)
\n";
}
else
{
fputs ($sock, "PASS mypass");
if (!$sock)
{
echo "$errstr ($errno)
\n";
}
else
{
fputs ($sock, "LIST");
echo fgets ($sock,128);
}
}
}


И вот в чем проблема! Сокет работает, то есть подсоединение с сервером происходит, но вместо списка коичества писем в виде:

+OK
1 46394
2 20377
3 27074

Мне показывает только +OK
Не пойму в чем дело :( Помогите а? Надеюсь что хоть кто-нибудь понимает в этом и ответит мне... :)
Проснитесь больной!!!... Пора принимать снотворное.
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

14 мар 2005, 03:00

fgets ($sock,128);
- берёт одну строчку длинной до 127 битов.
Так что всё путём. Для того, чтобы прочитать несколько строчек используй fread.
Даже самый дурацкий замысел можно воплотить мастерски
stasek
Сообщения: 14
Зарегистрирован: 11 фев 2005, 13:02

14 мар 2005, 03:06

Кстати все получилось у меня, там просто цикл задал чтобы переменную вывести точнее строки в переменной, но вот в чем проблема! не могу получить само письмо :( Шлю команду RETR 1 и получаю почему то:

+OK
+OK Password required for user stuser@list.ru
+OK stuser@list.ru maildrop has 2 messages (2145 octets)
+OK 2 messages (2145 octets)
1 1075
2 1070
.

В доках почитал и там сказано что:

команда RETR извлекает сообщение с указанным номером и помещает его в буфер местного UA:
CLIENT: RETR 1 SERVER: +OK 120 octets SERVER: <the POPS server sends the entire message here> (РОРЗ-сервер высылает сообщение целиком) SERVER:

И чо с этим буфером делать? Откуда получить этот буфер? Может вопрос глупый но я новичок в этом, второй день тока пишу скрипт. Заранее спасибо за ответ.
Проснитесь больной!!!... Пора принимать снотворное.
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

14 мар 2005, 03:13

Даже самый дурацкий замысел можно воплотить мастерски
stasek
Сообщения: 14
Зарегистрирован: 11 фев 2005, 13:02

14 мар 2005, 03:23

нууу... на англицком я не бачу. Шо ты мене предлахаеш??? :)
Проснитесь больной!!!... Пора принимать снотворное.
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

14 мар 2005, 03:25

учить английский :)
А вообще я клоню к тому, что изобретение велосипедов не самое полезное задание.
Исхдники предложенные посмотри...
Даже самый дурацкий замысел можно воплотить мастерски
stasek
Сообщения: 14
Зарегистрирован: 11 фев 2005, 13:02

14 мар 2005, 03:28

посмотрю обязательно, только мне это ООП в этом исходнике не понять, да и вообще пока не пнять что там за "->"
Проснитесь больной!!!... Пора принимать снотворное.
stasek
Сообщения: 14
Зарегистрирован: 11 фев 2005, 13:02

14 мар 2005, 03:41

Даже если изобретать велосипед, то самому дойти до этого и понять как работает интересней :) обьсяни что это за класс в этих исходниках и как его реализовать? ну в двух словах, а? Сам исходник я так понял небольшой и находится в разделе SYNOPSIS. О какой понятливый :)
Проснитесь больной!!!... Пора принимать снотворное.
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

14 мар 2005, 03:49

Ой, блин. Тяжело тебе будет, раз ты ссылку на исходник углядеть не можешь:
http://www.thewebmasters.net/php/class.POP3.phps
Даже самый дурацкий замысел можно воплотить мастерски
stasek
Сообщения: 14
Зарегистрирован: 11 фев 2005, 13:02

15 мар 2005, 01:05

Просто все равно хотелось самому написать а не пользоваться классами. Ну а как быть со вложенными письмами??? Как их то получать через протокол pop3? Дай намётку, есть ли это в этом классе? Я поищу тогда данную фишку. Просто ведь письма приходят и вложенные и может вообще картинка :)
Проснитесь больной!!!... Пора принимать снотворное.
Ответить