Как в procmail задать по два действия на несколько условий?
Настроил автоматический приём почты через fetchmail и procmail, но такое
чувство что я что-то не понял в procmail. Смысл в том что почту надо не
только принять но и распаковать вложения и уложить их по соответствующим
каталогам в итоге .procmailrc у меня имеет примерно следующий вид:
# Почта от X с фалом x.arj
:0
* ^From.*(x@)
* ^FileName.*x.arj
{
# создаю каталог для писем
CUR_DIR="$x/original"
DUMMY=`mkdir -p "$CUR_DIR"`
# сохраняю письмо в нужном каталоге
:0 c
"$CUR_DIR/."
# распаковвываю письмо своим скриптом
:0 aw
| /usr/local/bin/unpackMail.pl "$CUR_DIR"
}
# Почта от Y и от X, но без файла x.arj
:0
* ^From.*(x@|y@)
* !^FileName.*x.arj
{
# создаю каталог для писем
CUR_DIR="$y/original"
DUMMY=`mkdir -p "$CUR_DIR"`
# сохраняю письмо в нужном каталоге
:0 c
"$CUR_DIR/."
# распаковвываю письмо своим скриптом
:0 aw
| /usr/local/bin/unpackMail.pl "$CUR_DIR"
}
По идее первое условие должно было бы забрать письма от X с фалом x.arj,
но они идут дальше и мне во втором условии надо писать не просто
* ^From.*(x@|y@)
а
* ^From.*(x@|y@)
* !^FileName.*x.arj
Такой стиль при увеличении условий очень неудобен.
Как я понимаю, причина в том что я в первом действии указываю флаг "с"
:0 c
но если я его убираю, то у меня не выполняется второе действие (по
распаковке письма). Пробовал и
:0 a
и
:0 A
Как-то неудобно получается, если хочешь задавать по два действия, то
procmailrc будет выполнятся до самого конца, вместо завершения на нужном
действии. Может я что-то не так делаю?
Дебиан стоит sarge.
Reply to: