[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