Я использую 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"
Я не могу понять, почему один скрипт запускается, а другой скрипт выдает ошибку.
Ошибка в том, что ваш 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]
с идентичным действием доставки. Может быть, все еще может быть рефакторинг.
Других решений пока нет …