Запуск пхп скрипта по приходу письма электронной почты

tolyan

Новичок
Запуск пхп скрипта по приходу письма электронной почты

Подскажите пожалуйста, как запустить пхп скрипт по приходу на хост емайла на определенный адрес?
Что есть: создал емайл аккаунт ([email protected]), создал фильтр (на хосте стоит CPanel), в назначении фильтра указал путь к скрипту в следующем виде:
|/home/username/public_html/script.php

script.php - прост до безобразия, отправляет письмо на заданный электронный адрес. Проверка его работы делается очень просто: пишу в браузере
mysite.com/script.php
И на заданный в скрипте емайл приходит письмо.

Далее: отправляю письмо на [email protected] оно уходит, а вот результатов работы скрипта я не вижу =( То есть письмо на заданный в скрипте емаил не приходит.

В чем тут дело?
И еще: символ "|" в назначении фильтра - это, на сколько я знаю, что то связанное с потоком. Каким образом в скрипте получить тело письма?
 

Bor-ka

Новичок
tolyan
скрипт сам отрабатывается? В скрипте вместо отправки письма попробуйте писать что либо в какой либо файл и проверяйте, отрабатывается или нет.

Кроме того - где хоть какая либо передача данных срипту? Или у него подключен класс телепатии?
 

tolyan

Новичок
Я же писал: скрипт отрабатывает и посылает почту,если его из браузера запускать.
А если ссылку на него писать в настройках фильтра - то он не отрабатывает.
Про передачу данных я тоже писал:
Хостер сказал одну всего фразу, что "|" - это передача в поток, соответственно в скрипте надо чего то делать с stdin
 

Oddinn

Новичок
Автор оригинала: tolyan
Я же писал: скрипт отрабатывает и посылает почту,если его из браузера запускать.
А если ссылку на него писать в настройках фильтра - то он не отрабатывает.
Про передачу данных я тоже писал:
Хостер сказал одну всего фразу, что "|" - это передача в поток, соответственно в скрипте надо чего то делать с stdin
Если скрипт отрабатывается в консоли, то наверное там первой строкой надо поставить что-то типа
#!/usr/bin/php
Хотя я никогда не работал с CPanel и не уверен, что он запускает скрипт именно так.
Ну и хорошо бы сделать в скрипте запись отладочных сообщений в файл, а потом посмотреть, что там с ним происходит.
 

Bor-ka

Новичок
> Я же писал: скрипт отрабатывает и посылает почту,если его из браузера запускать
я читать умею. Вы уверены, что скрипт отрабатывается при поступлении почты? если нет - проверяйте с начала, отрабатывается он или нет и добивайтесь, чтобы он отрабатывался и не отрпавлял почту а писал куда нить что нить в файл например. как добьётесь этого - начинайте отлаживать отправку.

данные получайте из стандартного потока ввода POST

-~{}~ 10.10.05 12:24:

и еще логи не мешало бы глянуть
 

tolyan

Новичок
Oddin, я подумал, что будет прощще разузнать у хостера какой почтовый сервак у него стоит, и почитать доки по фильтрам этого сервака. Может он пхп скрипт в принципе не может запускать а может только перловый

Bor-ka, если скрипт не делает ничего кроме отправки почты, и почта не отправляется, значит он не отрабатывает. Я понял, что нужно попробовать скриптом в файл писать и смотреть что туда написано. Не уверен только что это поможет. По той причине, что не важно что должен делать скрипт если проблема в его активации.
 

Bor-ka

Новичок
> если скрипт не делает ничего кроме отправки почты, и почта не отправляется, значит он не отрабатывает
я скрипт не видел в связи с чем отладку надо начинать с самого простого - проверить, а запускается ли в такой ситуации сам скрипт (НЕ ЧЕРЕЗ HTTP!).
 

tolyan

Новичок
Никак не могу сообразить в чем тут нестыковка:
через хттп скрипт активируется. Все, что в его функциональность входит это отправка письма на заданный адрес. Ничего ниоткуда он не берет.
Дак вот: через хттп - почта приходит, через емайл (скрипт указан в настройках фильтра) не приходит. Отсюда я делаю вывод, что через хттп он активируется и выполняет свою функцию нормально, а вот через активации письмом - нет. То есть совсем не отрабатывает.
Где здесь я не прав?
 

Oddinn

Новичок
Автор оригинала: tolyan
Никак не могу сообразить в чем тут нестыковка:
через хттп скрипт активируется. Все, что в его функциональность входит это отправка письма на заданный адрес. Ничего ниоткуда он не берет.
Дак вот: через хттп - почта приходит, через емайл (скрипт указан в настройках фильтра) не приходит. Отсюда я делаю вывод, что через хттп он активируется и выполняет свою функцию нормально, а вот через активации письмом - нет. То есть совсем не отрабатывает.
Где здесь я не прав?
Объясняю еще раз: почтовый серер не может работать через HTTP, он запускает команду операционной системы (исполняемый файл). Чтобы твой PHP-скрипт стал таковым, надо как минимум поставить на него аттрибут executable и вписать первой строчкой #!/ust/bin/php (или путь к PHP). Это в том случае, если на сервере стоит UNIX. Второй вариант: указать комманду запуска скрипта как /usr/bin/php /путь/к/скрипту/scirpt.php
/usr/bin/php заменить на путь к PHP.
 

tolyan

Новичок
На счет каким может быть скрипт и как работает почтовый сервер - совсем мы друг друга не понимаем.
Скрипту пофиг как работает почтовик. Скрипт письмо посылает.
Проблема в другом.
а вот на счет активации скрипта - я думаю второй способ стоит попробовать. Потому как если мы сделаем executable файл пхп, то что то я сомневаюсь, что при запуске этого файла он корректно обработается пхп интрепретатором. Хотя может и ошибаюсь.
А вот если мы укажем в фильтре путь к php интерпретатору, и параметром отдадим путь к скрипту... Кажется, это ближе к реальности...
Надо пробовать.
 

Oddinn

Новичок
Автор оригинала: tolyan
А вот если мы укажем в фильтре путь к php интерпретатору, и параметром отдадим путь к скрипту... Кажется, это ближе к реальности...
Надо пробовать.
В случае UNIX-систем - это одно и то же.
 

GNU

Guest
указал путь к скрипту в следующем виде:
|/home/username/public_html/script.php

script.php - прост до безобразия, отправляет письмо на заданный электронный адрес. Проверка его работы делается очень просто: пишу в браузере
mysite.com/script.php
И на заданный в скрипте емайл приходит письмо.
если без параметров, укажи lynx http://mysite.com/script.php

или wget, но скрипт ддолжен что-то отдавать


по сабжу задачи:
такое делается ежеминутным кроном - проверяешь, не пришло ли письмо и запускаешь скрипт
 

tolyan

Новичок
Автор оригинала: GNU
если без параметров, укажи lynx http://mysite.com/script.php

или wget, но скрипт ддолжен что-то отдавать


по сабжу задачи:
такое делается ежеминутным кроном - проверяешь, не пришло ли письмо и запускаешь скрипт
lynx http://mysite.com/script.php
в таком виде указывать в фильтре?
Если в таком виде, то к телу письма скрипт доступ не получит? Либо, как вариант, скрипт должен лезть на почтовый ящик, на который настроен фильтр, активизирующий скрипт, и смотреть что там есть... надо подумать. Почему бы и нет...

А про ежеминутный крон можно поподробней? Или урл...
 

Bor-ka

Новичок
> А про ежеминутный крон можно поподробней
Просто прочитайте про cron - http://web.opennet.ru/man.shtml?topic=cron&category=8&russian=2
 
Сверху