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

Михаил Шувалов shuvalov.mv на gmail.com
Пт Апр 10 22:48:33 MSD 2009


В Чтв, 09/04/2009 в 18:58 +0400, Alexey I. Froloff пишет:
> * Михаил Шувалов <shuvalov.mv@> [090409 18:30]:
> >     mailname=`mktemp -t msg.XXXXX`
> >     :0 c
> >     $mailname
> >     :0
> >     | /home/mike/testpm $mailname
> Зачем такой ужос?  repmime не работает через пайп?
>
repmime работает через pipe, но полученный файл нужно дальше
обрабатывать, для этого и приходится писать скрипт. Если я что-то
перемудриваю/недомудриваю - советы принимаются.
Нужно:
1. извлечь файл архива из полученного письма
2. проанализировать имя файла архива и создать соответствующий каталог
3. разархивировать полученный архив в созданный каталог

> > 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"
> testpm вернул ненулевой код возврата или отказался читать stdin.
> Кстати, есть флаг i для таких целей.
>
Я про этот флаг знаю, просто хотелось понять почему так происходит.

> > 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) так и не попало в мой ящик.
> И не попадёт.  На правиле с | обработка письма заканчивается,
> надо carbon'ить в этом правиле или при открытии блока.
>
т.е. во втором правиле вложенного блока нужно было добавить флаг "с"?

> > * ^From.*shmikes на yandex.ru
> Эта строчка нахдится в заголовках письма.
>
> > * ^Content-Disposition: attachment;
> А эта - в теле.  Не хватает флагов.
>
Отправил сообщение, а потом уже сообразил что к чему :(

> Начните с чтения procmailrc(5) и procmailex(5).
>
Я всегда начинаю с прочтения манов, но не всегда сразу сообразишь как
правильно применять тот или иной параметр.

Собственно все получилось с таким правилом

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

:0 c
* ^From.*shmikes на yandex.ru
| /home/mike/testmail

и дальше в testmail я выполняю поставленную задачу.

Если есть другие предожения - с удовольствием выслушаю.

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


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