|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Как прочитать письма на мейл сервере из PHP? |
|
Как прочитать письма на мейл сервере из PHP?
|
Ночной странник Сообщения: 4050 |
Как прочитать письма на мейл сервере из PHP?
|
|
------- Отправлено: 23:22, 16-06-2004 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать читал я RFC, но я не понял как понять что письмо уже кончилось...
![]() может кто подскажет? |
------- Отправлено: 21:28, 20-06-2004 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать признак конца письма, если мне не изменяет пямять, \n.\n, (точка на отдельной строчке), ну и заголовки дальше начинаются. Но если ты не парсишь mailbox (те не пишешь pop3 - демон), а общаешься с pop3d, как почтовый клиент, то это дело демона знать, где заголовки, где тела писем и где все это кончается. Там же (в POP3 протоколе) и команды, помнится имеются, типа показать заголовки, показать такое-то письмо и т.д.
|
Отправлено: 22:23, 20-06-2004 | #12 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать mar
да там есть команда показать письмо, но.... он выплевывает все это в поток, пока не скачаю все целиком он не воспринимает другие команды, т.е. я должен понять когда письмо закончилось, если я запрошу следующую строчку, то сервер повиснет ![]() Добавлено: я разобрался, ка это все делается! для тех кому тоже интересно как это все делается привозу листинг простейшего скрипта который подсоединяется в серверу скачивает первое писмо и закрывает соединение. <html> <body> <? $fp = fsockopen("localhost", 111, $errno, $errstr); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { print fgets($fp, 128).'<br />'; fwrite($fp, "USER webmaster_vstyle\r\n"); print fgets($fp, 128).'<br />'; fwrite($fp, "PASS vlad\r\n"); print fgets($fp, 128).'<br />'; fwrite($fp, "STAT\r\n"); print $s = fgets($fp, 128).'<br />'; preg_match('#^\+OK (\d+) (\d+)#', $s, $r).'<br />'; fwrite($fp, "RETR 1\r\n"); print $s = fgets($fp, 128).'<br />'; preg_match('#^\+OK (\d+)#', $s, $r).'<br />'; $n = 0; while( $n < $r[1] ) { $s = fgets($fp, 65536); $n += strlen($s); print $s.'<br />'; flush(); } print fgets($fp, 128).'<br />'; fwrite($fp, "QUIT\r\n"); print fgets($fp, 128).'<br />'; fclose($fp); } ?> </body> </html> |
------- Отправлено: 22:28, 20-06-2004 | #13 |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать Vlad Drakula
а слабо Цитата:
![]() |
|
Отправлено: 23:23, 20-06-2004 | #14 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать mar
если тебе это интересно то конечно: <html> <body> <? // название хоста POP3 сервера $Host = 'localhost'; // Номер порта POP3 сервера ( обычно 110 ) $Port = 111; // имя учотной записи на сервере $User = 'webmaster_vstyle'; // пароль учетной записи на сервере $Password = 'vlad'; // открытие сетевого соединения $fp = fsockopen( $Host, $Port, $errno, $errstr); // проверка на удачность осединения if (!$fp) { // не удалось соединиться, выводим сообщение об ошибке echo $errstr.' ('.$errno.")<br />\n"; } else { // выводим преглошение сервера print fgets($fp, 128).'<br />'; // посылаем запрос на авторизацию fwrite($fp, 'USER '.$User."\r\n"); // выводим результат запроса print fgets($fp, 128).'<br />'; // посылаем пароль fwrite($fp, 'PASS '.$Password."\r\n"); // выводим подтверждение авторизации print fgets($fp, 128).'<br />'; // запрашиваем статистику с сервера fwrite($fp, "STAT\r\n"); // выводим статистику с сервера ( одна октава - один байт ) print $s = fgets($fp, 128).'<br />'; // запрашиваем первое письмо fwrite($fp, "RETR 1\r\n"); // читаем резушьтат print $s = fgets($fp, 128).'<br />'; // видираем из результата количество октав в письме preg_match('#^\+OK (\d+)#', $s, $r).'<br />'; $n = 0; // читаем писмо пока не кончилось while( $n < $r[1] ) { // читаем строку $s = fgets($fp, 65536); // добавляем размер прочитанной строки к счетчику $n += strlen($s); // выводим строку print $s.'<br />'; // посылаем ее броузеру flush(); } // выводим коней файла print fgets($fp, 128).'<br />'; // посылаем комадду отсоединения от сервера fwrite($fp, "QUIT\r\n"); // выводим сообщение об удачном отсоединении print fgets($fp, 128).'<br />'; // закрываем соединение ссервером fclose($fp); } ?> </body> </html> ![]() |
------- Отправлено: 00:16, 21-06-2004 | #15 |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать Vlad Drakula
конечно, интересно ![]() |
Отправлено: 00:40, 21-06-2004 | #16 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать mar
если еще чтонибуть будет интересно, то спрашивай! |
------- Отправлено: 02:07, 21-06-2004 | #17 |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать обязательно
![]() |
Отправлено: 12:18, 21-06-2004 | #18 |
![]() Ветеран Сообщения: 1864
|
Профиль | Отправить PM | Цитировать Мне тоже интересно
![]() Я никогда с почтой не работал Vlad Drakula Такой вопрос: а что нет стандартных каких нибудь функций в ПХП для работы с почтой?? Или хотелось просто что то своё написать??? А данный код я уже скопировал и сохранил. На будущее ![]() [s]Исправлено: vadimiron, 12:11 21-06-2004[/s] |
------- Отправлено: 14:10, 21-06-2004 | #19 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать vadimiron
в PHP я не нашол функций для работы с POP3, тас есть для работы с SMTP & imap & NNTP если кому интересно то я могу выложить на сеобщее обозрение программу которая организует WWW4MAIL, причем как с почтовым так и с веб интерфейсом. но только у меня нету к ней указаний по установке, очень был бы презнателен если ктонибуть помог их мне написать, дело в том что я развертываю ее даже ни о чем не задумываясь, так что я не знаю что писать в руководстве. кстати с помошью этого простого скрипта понял почему письма с осзоны вешают UUCP. |
------- Отправлено: 18:50, 21-06-2004 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Как прочитать с файла определенную строку | Voshal | Скриптовые языки администрирования Windows | 1 | 27-05-2009 08:24 | |
[решено] как прочитать весь текстовый файл целиком? (в PHP) | Vlad Drakula | Вебмастеру | 2 | 24-06-2006 13:51 | |
Как прочитать на JavaScript текстовый файл? | Efremov | Вебмастеру | 5 | 11-01-2006 11:27 | |
Как прочитать этот файл? | schumi | Хочу все знать | 3 | 21-11-2005 11:57 | |
как прочитать код | HEKTO | Программирование и базы данных | 20 | 02-03-2002 01:00 |
|