[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Как в 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: