Отладочная заглушка для mail()

no_santa

Снегур
Отладочная заглушка для mail()

цель - перехватывать письма отправляемые mail(), в процессе отладки

Сделал в php.ini
PHP:
sendmail_path = "/home/user/dir/script.php"
вот сам скрипт
PHP:
<?
$mail = '';
$fp = fopen('php://stdin','rb');
while (!feof($fp)) $mail .= fread($fp,512);
file_put_contents(date('Ymd-His').'.eml', $mail);
fclose($fp);
?>
Одна проблема - не работает, в папке пусто. Если непосредственно напрямую обратиться к скрипту, делает пустой .eml-файл.
Что можно сделать?

-~{}~ 26.07.09 10:19:

Иду к обнаружению проблемы... кажися, скрипт не распознается, как php. Вот лог:

http://pic.rapidshare.ru/1113567
 

no_santa

Снегур
переписывать на shell? Или можно включить обработчик php из конфы php? Смешно звучит, конечно, но это возможно? :)
 

флоппик

promotor fidei
Команда форума
Партнер клуба
sendmail_path = "php -f /home/user/dir/script.php" ; ну или где лежит консольный пых
 

флоппик

promotor fidei
Команда форума
Партнер клуба
а стоит ли у тебя консольный пых?
пропиши к нему полный путь.
 

iceman

говнокодер
эм, а этот скрипт когда-нибудь закончит свою работу?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
я не знаю, где он может лежать у тебя:
Код:
root@nicecode:~# which php
/usr/bin/php
root@nicecode:~#
-~{}~ 26.07.09 15:45:

Да, кстати, читать лучше не с php://stdin, а c php://input
 

iceman

говнокодер
флоппик
а как передать через консоль нужные данные чтобы они были в php://input ?
 

fixxxer

К.О.
Партнер клуба
достаточно универсальное решение, кстати, -

#!/usr/bin/env php

я не припоминаю систем, где env где-то в другом месте
 

no_santa

Снегур
php консольный стоит, работает.
Шебанг добавил.

Напрямую скрипт запускается, а через php.ini (суть темы) - никак
 

iceman

говнокодер
твой скрипт грубо сказать "зациклен"

-~{}~ 26.07.09 14:03:

т.е. дальше
PHP:
while (!feof($fp)) {...}
он не уходит...
 

no_santa

Снегур
Автор оригинала: iceman
твой скрипт грубо сказать "зациклен"

-~{}~ 26.07.09 14:03:

т.е. дальше
PHP:
while (!feof($fp)) {...}
он не уходит...
Я еще никогда с такими данными не работал. Как это можно решить?

-~{}~ 26.07.09 14:38:

Автор оригинала: флоппик
Ключик -f - заметил, не?
Заметил.

-~{}~ 26.07.09 14:42:

PHP:
#!/usr/bin/php5
<?
$mail = '';
$fp = fopen('php://stdin','rb');
for ($i = 0; $i < 500; $i++)  $mail .= fread($fp,512);
// while (!feof($fp)) $mail .= fread($fp,512);
file_put_contents(date('Ymd-His').'.eml', $mail);
?>
- так тоже не работает, очевидно, что скрипт не вызывается.
 
Сверху