[Sysadmins] фильтры в procmail

Михаил Шувалов shuvalov.mv на gmail.com
Чт Апр 9 18:28:05 MSD 2009


8 апреля 2009 г. 17:29 пользователь Alexey I. Froloff написал:
> * Михаил Шувалов <shuvalov.mv@> [090408 17:14]:
>> procmail: Error while writing to "/usr/bin/ripmime"
>> procmail: Rescue of unfiltered data succeeded
>
>> Как-то от этого можно избавиться (от строчек с ошибками, начинающихся
>> на procmail)?
> А ripmime это точно фильтр?  Который на выходе (stdout) выдаёт
> модифицированное письмо?  Если нет, то флаг 'f' лишний.
>
Да, действительно, ripmime не является фильтром (он извлекает из писем
приатаченные файлы), убрал 'f' и немного переделал условия:

$ cat /home/mike/.procmailrc
PATH=/bin:/usr/bin
LOGFILE=fromyandex.log

:0
* ^From.*shmikes на yandex.ru
{
    mailname=`mktemp -t msg.XXXXX`
    :0 c
    $mailname
    :0
    | /home/mike/testpm $mailname
}

Как я себе представляю, должно работать так. При приходе сообщения с
определенного адреса выполняются правила, в которых это сообщение
копируется во временный файл, имя которого передается скрипту. В этом
скрипте из файла с письмом извлекается приатаченный файл, после чего
файл с сообщением удаляется. При этом писмо так же направляется в мой
ящик. Отправляю два сообщения с вложениями. Получаю одно. При этом
procmail обрабатывает оба сообщения и извлекает вложения из _обоих_
писем. т.е. где-то теряется одно письмо.
Вот скрипт, который выполняется из правила:

$ cat /home/mike/testpm
#!/bin/bash

/usr/bin/ripmime -i $1 -d /home/mike/Mail/files
rm -f $1

Ии вот лог, который пишет procmail

$ cat /home/mike/fromyandex.log
From mike на to-18-2.fss.spb.ru  Thu Apr  9 17:46:01 2009
 Subject: test 73
  Folder: /home/mike/testpm /tmp/msg.eVC2M				  33297
procmail: Error while writing to "/home/mike/testpm"
From mike на to-18-2.fss.spb.ru  Thu Apr  9 17:54:54 2009
 Subject: test 72
  Folder: /var/spool/mail/mike						  69406

Первое сообщение (в логе с темой test 73) так и не попало в мой ящик.
Что не так, почему одно сообщение доходит, а другое нет?
И еще вопрос. Почему, если я добавляю условие (дабы отбирать сообщения
только с вложениями)

:0
* ^From.*shmikes на yandex.ru
* ^Content-Disposition: attachment;

то вообще не выполняются правила (т.е. пришедшее сообщение перестает
подпадать под условие)?

-- 
С уважением,
Михаил Шувалов


Подробная информация о списке рассылки Sysadmins