Пайпинг с постфиксными псевдонимами и MySQL - PullRequest
2 голосов
/ 17 июля 2011

Я пытаюсь получить входящую почту на определенный адрес электронной почты, перенаправленный на скрипт php.Я использую Postfix с информацией об адресе и домене, хранящейся в MySql.Поскольку я считаю, что конвейер не может быть выполнен из таблицы mysql, адрес в этой паре связан с системным псевдонимом:

В / etc / aliases:

#Other aliases
php_mail_handler:  "| /usr/bin/php -q /home/mysite/htdocs/mail_handler.php"

Это похоже на работув определенной степени, поскольку /var/log/mail.info содержит следующее:

Jul 17 14:53:29 mysite postfix/qmgr[21974]: 39F726888003: from=<myaccount@gmail.com>, size=1476, nrcpt=1 (queue active)
Jul 17 14:53:30 mysite postfix/local[21981]: 39F726888003: to=<php_mail_handler@localhost>, orig_to=<php@mysite.com>, relay=local, delay=0.95, delays=0.28/0.01/0/0.66, dsn=2.0.0, status=sent (delivered to command:  /usr/bin/php -q /home/mysite/htdocs/mail_handler.php)

Однако скрипт php никогда не выполняется (он записывает метку времени и все, что находится на stdin, в файл журнала).Скрипт работает при вызове из командной строки или через apache.Его код выглядит следующим образом:

<?php

$f = fopen('php_handler_log.txt','a+');
$data = file_get_contents("php://stdin");
fwrite($f,date('Y-m-d h:i:s').': '.$data."\n");
fclose($f);

?>

У кого-нибудь есть идеи о том, почему он может не работать или как его отладить?Так как в журнале ошибок php я не указал никаких ошибок в php.ini интерфейса командной строки.

Большое спасибо,

Mat

1 Ответ

1 голос
/ 17 июля 2011

Вы пытались выполнить сценарий в командной строке с пользователем nobody?

su -c "/usr/bin/php -q /home/mysite/htdocs/mail_handler.php" nobody

Затем попытайтесь использовать существующий адрес электронной почты при запуске теста, возможно, вы вернетесь в электронном письме отправителя.часть ошибок.

...