Пишу sendmail wrapper на perl, для php sendmail, подскажите как на perl определить имя и путь файла который инициировал данный скрипт.т.е. в php.ini вместо стандартного sendmail, я помещаю мой sendmail.pl, соответственно когда php отправляет почту при помощи функции sendmail, запускается мой sendmail.pl вот в нем то мне надо опредилить имя php файла в котором сработала фунция sendmail. Я так понимаю что эта информация должна быть в массиве $env, подскажите в каком ключе.
>сработала фунция sendmail. Я так понимаю что эта информация должна быть
>в массиве $env, подскажите в каком ключе.Нет, не должна, это тебе не HTTP referer. $PPID есть только в bash, лазить по /proc не поможет - в общем случае ты можешь оказаться и в мастдае и в BSD.
Проще всего - пропихни $_SERVER["SCRIPT_NAME"] параметром в командной строке.
>Проще всего - пропихни $_SERVER["SCRIPT_NAME"] параметром в командной строке.Немогу я его через командную строку передать, у меня сервер LAMP, на нем крутятся порядка 20 сайтов, мне надо отследить рассылку спама, чтобы при превышении лимита, включалась блокировка отправки почты с уведомлением, - какой скрипт, в папке какого домена...
свой враппер я прописываю в httpd.conf через директиву:
php_admin_value sendmail_path '/usr/sbin/sendmail.pl -t -i'Может есть еще варианты? ENV{PWD} получает, т.е. частично проблемма решается, но ENV{PWD} это только директория, вот бы еще сам скрипт отковырять.
>>Проще всего - пропихни $_SERVER["SCRIPT_NAME"] параметром в командной строке.
>
>Немогу я его через командную строку передать, у меня сервер LAMP, на
>нем крутятся порядка 20 сайтов, мне надо отследить рассылку спама, чтобы
>при превышении лимита, включалась блокировка отправки почты с уведомлением, - какойСгенери персональные коды, раздай юзерам. Пусть предъявляют в каждом вызове mail через $additional_parameters. Твой скрипт проверяет код. Если код неизвестен - письмо не уходит.
Против PEAR::Mail или самодельного SMTP клиента в скрипте требуй SMTP авторизацию, а прямой выход на чужой 25 порт закрой firewall.
>Сгенери персональные коды, раздай юзерам. Пусть предъявляют в каждом вызове mail через
>$additional_parameters. Твой скрипт проверяет код. Если код неизвестен - письмо не
>уходит.Это не решит вопрос по сабжу.
Нашел выход проще, оказывается в PHP 5.3.0 mail.log добавили, в него как раз всё что мне надо заносится. Остается тока распарсить его, а в случае превышения лимита блокировать отправку с нужного домена (домен я по ENW{PWD} определяю нормально).>Против PEAR::Mail или самодельного SMTP клиента в скрипте требуй SMTP авторизацию, а
>прямой выход на чужой 25 порт закрой firewall.А как же я 25 порт закрою? тогда sendmail работать не будет.
>>Против PEAR::Mail или самодельного SMTP клиента в скрипте требуй SMTP авторизацию, а
>>прямой выход на чужой 25 порт закрой firewall.
>
>А как же я 25 порт закрою? тогда sendmail работать не будет.man iptables
-m owner --cmd-owner ...