Procmail и PHP скрипт

Я использую postfix и procmail. Но у меня проблема с procmail и php.
Php-код /home/www/cron/mail_visirun.php запустить без проблем, но если /home/www/cron/mail_selva.php Должно быть запущено в лог-файл приходит сообщение об ошибке:

Мой файл procmail:

Мой php файл /home/www/cron/mail_selva.php:

LOGFILE=/var/log/procmailrc.log
VERBOSE=yes
ATTACHinvoice=`echo /home/dok/dispo/RGein`
ATTACHselva=`echo /home/dok/dispo/Selva`
:0
* ^From:.*visirun
| /usr/bin/php /home/www/cron/mail_visirun.php

:0c
* ^To.*[email protected]
! [email protected]

:0
* ^To.*[email protected]
| munpack -q -C $ATTACHinvoice

:0c
* ^From:.*selva
! [email protected]

:0c
* ^From:.*selva
| munpack -q -C $ATTACHselva

:0
* ^From:.*selva
| /usr/bin/php /home/www/cron/mail_selva.php

:0
* ^To.*[email protected]
| /usr/bin/php /home/www/cron/mail_selva.php

:0 w
! [email protected]

Файл php /home/www/cron/mail_selva.php:

<?php
echo "OK";
?>

Мой лог:

procmail: Executing "/usr/bin/php,/home/www/cron/mail_selva.php"procmail: Error while writing to "/usr/bin/php"procmail: Assigning "LASTFOLDER=/usr/bin/php /home/www/cron/mail_selva.php"

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

0

Решение

Ошибка в том, что ваш PHP-скрипт не может прочитать свой стандартный ввод. Procmail обнаруживает это и считает доставку неудачной.

Если план состоит в том, чтобы скрипт делал что-то полезное со стандартным вводом, просто сделайте это, и ошибка исчезнет.

Если нет, возможно, объясните более подробно (возможно, уже в новом вопросе), что делает ваш скрипт и что, как вы надеетесь, должно произойти, когда Procmail направит в него текущее сообщение.


Стилистические замечания:

  • Вы хотите избавиться от сумасшедшего бесполезного использования echo в спинах. + Изменить variable=`echo value` в variable='value' (возможно без кавычек, если значение не требует кавычек).
  • w Флаг на окончательном рецепте странный. Я не уверен, что вы могли ожидать, что делать. Каково ваше намерение?
  • Повторные условия не являются ошибкой, но слегка проблематичны. Я бы изменил рефакторинг, чтобы у вас было только одно регулярное выражение для обновления, если вам когда-нибудь понадобится.
:0
* ^From:.*selva
{
:0c
! [email protected]

:0c
| munpack -q -C $ATTACHselva

:0
| /usr/bin/php /home/www/cron/mail_selva.php
}

Тогда вы все еще застряли с ^To.*[email protected] с идентичным действием доставки. Может быть, все еще может быть рефакторинг.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]