Статьи,обзоры,справочники по PHP


-- I -- Почтовый робот за минут ("COMMAND")


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

Приступим. Разумеется, ваш сервер должен быть типа Unix, а не Windows. Еще вы должны иметь PHP в виде CGI программы. Попробуйте запустить из телнета комагду echo 123 | php

(либо с путями: echo 123 | /usr/bin/php). Если вы увидите в ответ что-то, то ПХП на сервере есть. Напишут "файл не найден" - значит еще нет. Попробуйте поискать в других каталогах или спросить админа. Если действительно нет - нужно скомпилировать ПХП как CGI программу. Это сделать очень просто:

  • перейдите в каталог исходников ПХП
  • запустите ./configure

    со всеми параметрами, что и при первой компиляции (с апачем), только не пишите параметра --with-apache

  • скомпилируйте: make
  • инсталляцию НЕ запускайте (make install)
  • скопируйте образовавшийся файл php в каталоге компиляции в каталог /usr/bin



    1) Ваш домашний каталог.

    Он не должен быть доступен из веба, т.е. не совпадать ни с одним веб-каталогом на сервере. Например, ваши веб-страницы живут в каталоге /www, а ваш домашний каталог - /home/dima. Вот там то мы и будем писать робота. Если вы положите такой скрипт в веб-каталог, получиться натуральный троян, типа телнет-доступа для всех желающих на сервер. В скрипте ничего страшного нет, просто чтение входного потока.

    2) Создайте файл робота.

    Он будет в нашем домашнем каталоге /home/dima/mail.php (расширение никакого значения не имеет) следующего содержания:




    #!/usr/bin/php


    3) Как это работает. Мы еще не закончили, но уже видно, как это будет работать. Во-первых, данный скрипт будет запущен только при приходу письма. Во-вторых, вам подадут письмо в готовом виде - надо только открыть входной поток (файл со спец. именем php://stdin) и прочитать от туда текст. Представьте, что это обычный файл. После того, как вы прочитали письмо, функции почтового робота заканчиваются. Вы можете поместить письмо в переменную или сразу построчно обработать, но главное - это уже совсем другая история, каким образом реагировать на текст-письма (там есть заголовок, тело, поля в заголовке...). В примере мы записываем текст письма в файл /tmp/php-robot.txt (доступ к каталогу /tmp имеют все пользователи на сервере). Число 10`000 очень завышено. Максимальная длина письма, толи 1 Кбайт, толи 2 Кбайта (в этом пределе). Писем с большими по длине строками не бывает, это вам может гарантировать ваш почтовый сервер.




    - Начало -  - Назад -  - Вперед -