Объясните как правильно с ними работать?
Есть острая необходимость написать скрипт для фильтра в postfix, имеется пример в документации написанный на шел. вывод с smtpd демона в файл там передается так:
cat _> $DIR/$$ || { echo Cannot save mail to file; exit EX_TEMPFILE; }
сам фильтр привязывается таким способом(кусок master.cf)
smtp _ _inet _ _n _ _ _ - _ _ _ n _ _ _ - _ _ _ 10 _ _ _ smtpd
_ _ _ _ _ _ _ _ -o content_filter=mailfilter:dummy
mailfilter unix _- _ _ _ n _ _ _ n _ _ _ - _ _ _ 10 _ _ _ pipe
_ _flags=Rq user=pupkin argv=/usr/local/script/mail/mailfilter.sh -f ${sender}
-- ${recipient}
тоесть исходя из этого ясно, что smtpd просто передает на STDOUT содержимое сообщения в clear-text.
Вот это и нужно словить.
Самый простой способ, который напрашивается - system и кусок из shell скрипта. Но это, по моему не правильно и не красиво.
Может кто, пояснить как "правильно", схватить это сообщение?
пробовал и так:
open STDOUT, \'>\', "/tmp/foo.out" or die "Can\'t redirect STDOUT: $!";
print STDOUT $_;
close STDOUT;
и так
open STDOUT, \'>\', "/tmp/foo.out" or die "Can\'t redirect STDOUT: $!";
print STDOUT STDIN;
close STDOUT;
и еще парой методов - не получается. Пробовал уазывать в качестве пути к файлу STDOUT/STDIN - тоже ноль.
Подскажите, как словить вывод от программы?