Эта тема на forum.dklab.ru


Макс: POP3 & SNTP - Сбор почты с других серверов..
POP3 & SNTP - Сбор почты с других серверов..
Подскажите, как можно собирать почту с других серверов посредством PHP (через ПОП3.)

Например держать уйму почтовых АК, и собирать с них почту на один, какой нибуть, там, www.usites.pp.ru
http://www.rolfealumni.com/images/Reigelsberger%20corn%20mailbox-snow-color.jpg
.. такая мысль, меня озорила, спустя месяц нахождения на этом форуме..)
Юрий Насретдинов:
Итак, вот что у меня после долгих мучений с сервером получалось:


<?
$sock = fsockopen ( "mail.mail.ru", 110, $errno, $errstr, 30 );
if( !$sock )
{
echo "Ошибка при подключении к серверу. Номер ошибки: ".$errno.". Ответ сервера: ".$errstr;
}else
{
echo "<pre>";
fputs ( $sock, "USER ".""/*!!! имя пользователя -> !!!*/."user\r\n" );
//**
$answer = fgets( $sock, 1000 );
echo "Соединение установлено успешно. Ответ сервера: ".$answer."\n";
flush();
//**
$answer = fgets ( $sock, 1000 );
$part = explode(" ",trim($answer),2);
if($part[0]=="+OK") echo "Логин: ОК. Ответ сервера: ".$part[1]."\n";
else echo("Логин: Ошибка. Ответ сервера: ".$part[1]."<br>\n");
flush();
//**
fputs ( $sock, "PASS ".""/*!!! пароль -> !!!*/."****\r\n" ); //по аналогии
$answer = fgets ( $sock, 1000 );
$part = explode(" ",trim($answer),2);
if($part[0]=="+OK") echo "Пароль: ОК. Ответ сервера: ".$part[1]."\n";
else echo("Пароль: Ошибка. Ответ сервера: ".$part[1]."<br>\n");
flush();
//**
fputs ( $sock, "LIST\r\n" );
$answer = fgets ( $sock, 1000 );
$part = explode(" ",trim($answer),2);
if($part[0]=="+OK") echo "Получение списка: ОК. Ответ сервера: ".$part[1]."\n";
else echo("Получение списка: Ошибка. Ответ сервера: ".$part[1]."<br>\n");
flush();
//**
$answer1="";
//**
while(!feof($sock))
{
$answer = fgets ( $sock, 1000 );
$answer1 .= $answer; //выведет вам всю информацию о полученном списке
}
//**
echo $answer1;
echo "</pre>";
//**
//дальше по аналогии делаем, продолжать не буду
//**
}
?>


Это точно работает. Дальше пользуйтесь поиском по форуму и мануалом...
Макс: -
Во время просмотра этого кода, у меня из компа выполз большой рыжий таракан.
Я сразу на мыло(почту) системщику...
--
Макс: -
.. а что такое:
$answer = fgets( $sock, 1000 );
с чем его едят?
Дмитрий Эсс:
http://www.php.net/fgets
Макс: -
Пытаюсь "нарыть" подробное описание команд и сам протокол..
пока только http://www.codenet.ru/webmast/pop3.php
WingedFox:
Гугль рулит.
POP3 RFC
Педагог:
А подскажите, почему после первого благополучного обмена информацией (команда LIST в листинге например), второй обмен информации не идет - я серверу команду, а он молчит как убитый. В telnet-е все нормально, а вот в PHP одна команда и все...
WingedFox:
1. Берёте любую утилиту, способную мониторить порт и анализируете структуру пакетов передаваемых Telnet, затем эмулируете.
2. Внимательно читаете RFC и реализуете именно то, что там написано.
Педагог:
А можно без посыланий в RFC, мануалы и поисковые системы. Честно говоря до жути раздрожает это. Не хотите отвечать конкретно, не отвечайте... Иначе на главной странице форума напишите "Смотри бестолочь в мануал!" и прикройте все топики. Конкретно, если к коду приведенному yUAC добавить вниз после его комментариев
//**
//дальше по аналогии делаем, продолжать не буду
//**
fputs ( $sock, "LIST\r\n" );
while(!feof($sock))
{
echo fgets ( $sock, 1000 );
}
то второй раз список не выводится (как и любая другая команда).
WingedFox:
"Смотри бестолочь в мануал!"
Это и так там написано 8*)

Просто практика показывает, что человек один раз разобравшийся с мануалом, RFC или любым другим документом начинает думать самостоятельно.

Не хотите читать RFC - пользуйтесь советом n1.
Педагог:
А кто нибудь не совет, а решение предложит, или эта проблема в тупик всех привела?
WingedFox:
http://forum.dklab.ru/other/all/MognoLiZapretitAvtorizovatsyaSoStrokiBrauzeraNaprime.html
Дмитрий Котеров:

А можно без посыланий в RFC, мануалы и поисковые системы. Честно говоря до жути раздрожает это.
Вы всегда можете устранить источник раздражения, закрыв окно браузера и выпив чаю.
Педагог:
Вы всегда можете устранить источник раздражения, закрыв окно браузера и выпив чаю.
Так если бы я знал, что меня "пошлют", я бы не открывал это окно браузера и продолжал бы пить чай.
Дмитрий Эсс:
Педагог:
Вас не "послали", а отправили по назначению.
Прочитайте правила поведения на форуме, поправка №1 Дмитрия Попова. =)
Закрываю тему, т.к. чувствую, сейчас повалит оффтоп.

Эта тема на forum.dklab.ru