Большой Воронежский Форум
» Веб-дизайн>Файл .procmailrc
AAS 11:10 26.01.2004
Имеется почтовый адрес [email protected] и PERL скрипт script.cgi, который находится в /home/login/public_html/cgi-bin/script.cgi
Вопрос:
как правильно прописать файл .procmailrc, чтобы почта, направленная по адресу [email protected], передавалась на обработку скрипту script.cgi ?

Вот так?

:0
* ^[email protected]
| /home/login/public_html/cgi-bin/script.cgi

Поправьте меня, пожалуйста, если неправильно.
Что-то у меня сомнение в последней строке. [Ответ]
Unforgiven 11:40 26.01.2004
Если в первой строке под ^TO_ подразумевается ^TO с пробелом, то все нормально. [Ответ]
AAS 08:34 29.01.2004

Сообщение от :
Первоначальное сообщение от Unforgiven
Если в первой строке под ^TO_ подразумевается ^TO с пробелом, то все нормально.

Благодарю за ответ!
Если точно, то файл выглядит так:

:0
* ^To: [email protected]
| /home/login/public_html/cgi-bin/script.cgi

но все равно не работает. Почта на [email protected] приходит напрямую, минуя скрипт. Интересно, а как вообще "уживаются" файлы .forward и .procmailrc ? Дело в том, что у меня для другого скрипта используется файл .forward Он выглядит так:

\login,"|/usr/bin/perl /home/login/public_html/cgi-bin/script1.pl"

и работает нормально. Этот файл всю приходящую на домен почту передает script1.pl

Вот я и думаю: " А какой же файл перенаправляет почту первым?" Если .forward, то можно ли сделать так, чтобы он перенаправлял всю почту кроме [email protected] ? А [email protected] перенаправлял .procmailrc ? Или можно как-то по-другому, например, обойтись одним из этих файлов?

Да, и еще. В каком-то любительском описании .procmailrc я видел что-то подобное:

:0
* ^To: [email protected]
|/usr/bin/perl /home/login/public_html/cgi-bin/script.cgi

Может все-таки нужно добавить /usr/bin/perl ? [Ответ]
AAS 14:35 29.01.2004
Почитал еще литературу, кое-что прояснилось. Вот что я понял:

1. Вот такой .procmailrc должен точно работать

:0
* ^To.*[email protected]
| /home/login/public_html/cgi-bin/script.cgi

2. Чтобы он заработал необходимо в .forward прописать что-то
типа
"|IFS=' ';exec /usr/local/bin/procmail USER=login"

Но возникла проблема, как "вписать" это уже в работающий .forward
Попробовал вот так

\login,"|/usr/bin/perl /home/login/public_html/cgi-bin/script1.pl","|IFS=' ';exec /usr/local/bin/procmail USER=login"

не работает. Видимо, где-то ошибся.

Есть какие мысли на этот счет? [Ответ]
Unforgiven 14:53 29.01.2004
Насколько я понял, script.cgi сам ничего не делает. В этом случае вариантов два.

1) Подсунуть его исполняющей программе (в даном случае перлу), т. е. как ты сам сказал, сделать в .procmailrc
/usr/bin/perl /home/login/public_html/cgi-bin/script.cgi

2) сделать скрипт /home/login/public_html/cgi-bin/script.cgi исполняемым (его будет исполнять шелл), а в самом начале первой строкой вписать

#!/usr/bin/perl -w

Shell запустит /usr/bin/perl и подсунет ему остальной скрипт. [Ответ]
Вверх