Здравствуйте!
On Tue, Oct 28, 2003 at 03:02:05PM +0300, Peter Didenko wrote:
> > Есть задача: при прохождении письма,
> > имеющего определенный адрес получателя (например vip@domain.com),
> > нужно посылать сообщение администратору (тоесть мне)
> > с подтверждением того, что письмо доставлено на сервер
> > получателя, желательно с куском лога. Не сталкивался
> > ли кто с такой задачей? Тупо парсить лог файл, и выкусывать из него
> > всё относящееся к этому сообщению не хочется, не подскажет
> > ли кто, как это сделать попроще?
>
> Скажите, что значит "при прохождении"? Это значит "когда пользователь
> моего сервера отправляет письмо наружу и оно доставляется на почтовый сервер
> получателя"? Пожалуйста, старайтесь ставить вопрос максимально детально.
> Данные из лога Вы не получите с использованием механизмов сервера. Логи это
> файлы на диске. Сервер их формирует и вкладывает на диск или еще куда-то. Если
> Вам нужны данные из файлов - работайте с файлами.
>
> while (<LOG>) {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Если 'tail-ить' пишущийся лог, то тут будет ломаться. Так как при вычитывании файла до конца - данный цикл будет закончен, то, что далее в этот файл еще что-то записали подобным способом увидеть не получится.
У read() по "файлам" нет блокировки на ожидание данных - он просто вернет EOF. Подробности, как можно читать подобные файлы с квази-блокировкой - можно посмотреть в source text от tail и тд :)
> if (/что-то тут увидели/) {
> что-то тут делаем;
> }
> }
С уважением,
Михаил Кулаков
Получено Tue Oct 28 12:17:54 2003
Этот архив был сгенерирован hypermail 2.1.8 : Thu 06 Apr 2006 - 19:38:39 MSD