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

  • Автор темы Автор темы tolyan
  • Дата начала Дата начала

tolyan

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

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

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

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

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

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

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

-~{}~ 10.10.05 12:24:

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

Bor-ka, если скрипт не делает ничего кроме отправки почты, и почта не отправляется, значит он не отрабатывает. Я понял, что нужно попробовать скриптом в файл писать и смотреть что туда написано. Не уверен только что это поможет. По той причине, что не важно что должен делать скрипт если проблема в его активации.
 
> если скрипт не делает ничего кроме отправки почты, и почта не отправляется, значит он не отрабатывает
я скрипт не видел в связи с чем отладку надо начинать с самого простого - проверить, а запускается ли в такой ситуации сам скрипт (НЕ ЧЕРЕЗ HTTP!).
 
Никак не могу сообразить в чем тут нестыковка:
через хттп скрипт активируется. Все, что в его функциональность входит это отправка письма на заданный адрес. Ничего ниоткуда он не берет.
Дак вот: через хттп - почта приходит, через емайл (скрипт указан в настройках фильтра) не приходит. Отсюда я делаю вывод, что через хттп он активируется и выполняет свою функцию нормально, а вот через активации письмом - нет. То есть совсем не отрабатывает.
Где здесь я не прав?
 
Автор оригинала: tolyan
Никак не могу сообразить в чем тут нестыковка:
через хттп скрипт активируется. Все, что в его функциональность входит это отправка письма на заданный адрес. Ничего ниоткуда он не берет.
Дак вот: через хттп - почта приходит, через емайл (скрипт указан в настройках фильтра) не приходит. Отсюда я делаю вывод, что через хттп он активируется и выполняет свою функцию нормально, а вот через активации письмом - нет. То есть совсем не отрабатывает.
Где здесь я не прав?
Объясняю еще раз: почтовый серер не может работать через HTTP, он запускает команду операционной системы (исполняемый файл). Чтобы твой PHP-скрипт стал таковым, надо как минимум поставить на него аттрибут executable и вписать первой строчкой #!/ust/bin/php (или путь к PHP). Это в том случае, если на сервере стоит UNIX. Второй вариант: указать комманду запуска скрипта как /usr/bin/php /путь/к/скрипту/scirpt.php
/usr/bin/php заменить на путь к PHP.
 
На счет каким может быть скрипт и как работает почтовый сервер - совсем мы друг друга не понимаем.
Скрипту пофиг как работает почтовик. Скрипт письмо посылает.
Проблема в другом.
а вот на счет активации скрипта - я думаю второй способ стоит попробовать. Потому как если мы сделаем executable файл пхп, то что то я сомневаюсь, что при запуске этого файла он корректно обработается пхп интрепретатором. Хотя может и ошибаюсь.
А вот если мы укажем в фильтре путь к php интерпретатору, и параметром отдадим путь к скрипту... Кажется, это ближе к реальности...
Надо пробовать.
 
Автор оригинала: tolyan
А вот если мы укажем в фильтре путь к php интерпретатору, и параметром отдадим путь к скрипту... Кажется, это ближе к реальности...
Надо пробовать.
В случае UNIX-систем - это одно и то же.
 
указал путь к скрипту в следующем виде:
|/home/username/public_html/script.php

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

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


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

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


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

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