Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Как прочитать письма на мейл сервере из PHP?

Ответить
Настройки темы
Как прочитать письма на мейл сервере из PHP?

Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Как прочитать письма на мейл сервере из PHP?

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 23:22, 16-06-2004

 

Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


читал я RFC, но я не понял как понять что письмо уже кончилось...

может кто подскажет?

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 21:28, 20-06-2004 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


признак конца письма, если мне не изменяет пямять, \n.\n, (точка на отдельной строчке), ну и заголовки дальше начинаются. Но если ты не парсишь mailbox (те не пишешь pop3 - демон), а общаешься с pop3d, как почтовый клиент, то это дело демона знать, где заголовки, где тела писем и где все это кончается. Там же (в POP3 протоколе) и команды, помнится имеются, типа показать заголовки, показать такое-то письмо  и т.д.

Отправлено: 22:23, 20-06-2004 | #12


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить 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

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


Vlad Drakula
а слабо
Цитата:
для тех кому тоже интересно
откомметировать поподробней

Отправлено: 23:23, 20-06-2004 | #14


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить 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

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


Vlad Drakula
конечно, интересно

Отправлено: 00:40, 21-06-2004 | #16


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


mar
если еще чтонибуть будет интересно, то спрашивай!

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 02:07, 21-06-2004 | #17

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


обязательно

Отправлено: 12:18, 21-06-2004 | #18


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Мне тоже интересно

Я никогда с почтой не работал

Vlad Drakula

Такой вопрос: а что нет стандартных каких нибудь функций в ПХП для работы с почтой?? Или хотелось просто что то своё написать???

А данный код я уже скопировал и сохранил. На будущее

[s]Исправлено: vadimiron, 12:11 21-06-2004[/s]

-------
Fortes fortuna adiuvat


Отправлено: 14:10, 21-06-2004 | #19


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


vadimiron
в PHP я не нашол функций для работы с POP3, тас есть для работы с SMTP & imap & NNTP

если кому интересно то я могу выложить на сеобщее обозрение программу которая организует WWW4MAIL, причем как с почтовым так и с веб интерфейсом.

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

кстати с помошью этого простого скрипта понял почему письма с осзоны вешают UUCP.

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 18:50, 21-06-2004 | #20



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Как прочитать письма на мейл сервере из PHP?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход