Provided by:
manpages-es-extra_0.8a-17_all 
NOMBRE
procmailrc - fichero de recursos de procmail
SINOPSIS
$HOME/.procmailrc
DESCRIPCI'ON
Para un comienzo rapido, vease NOTAS al final de la pagina de manual
de procmail(1).
El fichero de recursos puede contener una mezcla de asignaciones de
variables de entorno (algunas de las cuales pueden tener un significado
especial para procmail) y recetas. En su apariencia mas simple, las
recetas son solamente una expresion regular de una linea que se busca
en las cabeceras del correo entrante. La primera receta que concuerda
se usa para determinar adonde tiene que ir el correo (normalmente un
fichero). Si el procesado llega al final del fichero de recursos,
procmail entrega el correo a $DEFAULT.
Hay dos clases de recetas: recetas de entrega y de no entrega. Si se
encuentra una receta de entrega que concuerda, procmail considera el
correo (vd. lo supone) entregado y terminar'a el procesamiento del
fichero de recursos tras haber ejecutado adecuadamente la linea de
accion de la receta. Si se encuentra una receta de no entrega que
concuerda, el procesado del fichero de recursos continuar'a una vez que
la linea de accion haya sido ejecutada.
Las recetas de entrega son aquellas que hacen que las cabeceras y/o
cuerpo del corres sean: escritas a un fichero, absorbidas por un
programa o reenviadas a otra direccion de correo.
Las recetas de no entrega son aquellas que: hacen que la salida de un
programa o filtro sean capturadas por procmail o aquellas que inician
un bloque anidado.
Le puede decir a procmail que trate una receta de entrega como si
fueran una receta de no entrega especificando la cacera `c' en dicha
receta. Esto hara que procmail genere una copia de carb'on del correo
para entregarlo a esta receta y continua procesando el fichero de
recursos.
Usando cierto numero de recetas puede ordenar el correo en varias
carpetas. Tenga en cuenta que el correo puede llegar de forma
concurrente en estas carpetas (si varios programas procmail se ejecutan
a la misma vez, no es improbable si llega mucho correo). Para estar
seguro de que esto no degenera en problemas, es muy recomendable el uso
de ficheros de bloqueo.
Las asignaciones de variables de entorno y recetas se pueden mezclar
libremente en el fichero de recursos. Si cualquier variable de entorno
tiene un significado especial para procmail, se usara apropiadamente en
el momento en que se analiza (i.e. puede cambiar el directorio actual
cuando quiera especificando un nuevo MAILDIR, cambiar ficheros de
bloqueo especificando un nuevo LOCKFILE, cambiar umask en cualquier
momento, etc., las posibilidades son ilimitadas :-).
Las asignaciones y sustituciones de estas variables de entorno se
gestionan exactamente como en sh(1) (esto incluye todas las posibles
comillas (quotes) y escapes), con el valor anadido de que los blancos
alrededor del signo `=' se ignoran y que, si una variable de entorno
aparece sin un '=' tras ella se elimina del entorno. Cualquier programa
entre comillas invertidas (`) iniciado por procmail tendra el todo el
correo como su entrada estandar.
Comentario
Una palabra que comience por # y el resto de los caracteres hasta el
caracter de nueva linea se ignoran. Esto no se aplica a las lineas de
condicion, que no se pueden comentar.
Recetas
Una linea que comience por ':' indica el comienzo de una receta. Esto
tiene el siguiente formato:
:0 [banderas] [ : [fichero_bloqueo_local] ]
<ninguna o mas condiciones (una por linea)>
<exactamente una linea de accion>
Las condiciones comienzan con un `*' inicial, todo lo que viene tras
este caracter se pasa al egrep interno literalmente, salvo los espacios
en blanco iniciales y finales. Estas expresiones regulares son
completamente compatibles con las expresiones regulares extendidas del
egrep(1) normal. Vease tambien Expresiones regulares extendidas.
La condiciones se unen mediante Y (and); si no hay condiciones el
resultado sera verdadero por defecto.
Banderas pueden ser cualesquiera de las siguientes:
H Hace egrep sobre la cabecera (por defecto).
B Hace egrep sobre el cuerpo.
D Indica al egrep interno que distinga entre mayusculas y minusculas
(contrario al comportamiento por defecto que ignora esta
distincion).
A Esta receta no se ejecutara salvo que las condiciones de la ultima
receta precedente (del nivel de bloque anidado actual) sin las
banderas `A' o `a' se verificaron. Esto permite encadenar acciones
que dependan de una condicion comun.
a Tiene el mismo significado que la bandera `A', con la condicion
adicional que la receta inmediatamente precedente tiene que
completarse correctamente antes de ejecutar esta receta.
E Esta receta solo se ejecuta si la receta inmediatamente precedente
no se ejecuto. La ejecucion de esta receta tambien desactiva
cualquier receta inmediatamente posterior con la bandera 'E'. Esto
le permite especificar acciones `else if'.
e Esta receta solo se ejecuta si fall'o la receta inmediatamente
anterior (i.e. la accion se intento, pero ocasiono un error).
h Alimenta la cabecera a un tuberia, fichero o destino de correo
(por defecto).
b Alimenta el cuerpo a un tuberia, fichero o destino de correo (por
defecto).
f Considera la tuberia como un filtro.
c Genera una copia de carb'on de este mensaje. Esto solo tiene
sentido en las recetas de entrega. En la unica receta de no
entrega que esta bandera tiene efecto es en un bloque anidado,
para generar una copia de carbon esto duplica el proceso procmail
en ejecucion (los ficheros de bloqueo no se heredan), por lo cual
el proceso duplicado actuara de forma normal y el padre saltara el
bloque.
w Espera que termine el filtro o programa y verifica su codigo se
salida (normalmente ignorado); si el filtro no tiene exito, el
texto no sera filtrado.
W Tiene el mismo significado que la bandera `w', pero suprimira
cualquier mensaje `Fallo de Programa'.
i Ignora cualquier error de escritura en esta receta (i.e.
normalmente debido a una tuberia cerrada prematuramente).
r Modo de estado original (raw mode), no intenta asegurarse de que
el mensaje termina en un linea vacia, lo escribe tal cual.
Hay algunas condiciones especiales que puede usar que no son
expresiones regulares puras. Para seleccionarlas, la condicion debe
comenzar con:
! Invierte la condicion.
$ Evalua el resto de esta condicion segun las reglas de sustitucion
de sh(1) dentro de las dobles comillas, salta los espacios
iniciales y entonces la vuelve a analizar.
? Usa el codigo de salida del programa especificado.
< Verifica si la longitud total del correo es mas corta que el
numero de octetos especificado (en decimal).
> Analogo a '<'.
nombre_de_variable ??
Concuerda el resto de esta condicion con el valor de esta variable
de entorno (que no puede ser una pseudo variable). Un caso
especial es si nombre_de_variable es igual a `B', `H', `HB' o
`BH'; esto simplemente se sobrepone al area cabecera/cuerpo por
defecto definida por la bandera inicial de esta receta.
\ Para entrecomillar algo de lo anterior al inicio de la linea.
Fichero de bloqueo local
Si pone unos segundos ':' (detras) en la primera linea de receta,
entonces procmail usara un fichero de bloqueo local (para esta receta
solo). Opcionalmente puede especificar el fichero de bloqueo local que
quiere usar; si no lo hace procmail usara el nombre de fichero destino
(o el nombre de fichero a continuacion del primer '>>') y le anadira
$LOCKEXT.
L'inea de acci'on de receta
La linea de accion puede comenzar con los siguientes caracteres:
! Reenvia a todas las direcciones de correo especificadas.
| Inicia el programa especificado, posiblemente en $SHELL si
incluya alguno de los caracteres $SHELLMETAS. Opcionalmente
puede incluir el simbolo de tuberia en variable=, lo que hara
que la salida estandar del programa sea capturado en la variable
de entorno (procmail no termina el preprocesado del fichero de
recursos en este punto). si especifica el simbolo de tuberia,
sin ningun programa, procmail dirige el correo a la salida
estandar.
{ Seguido de al menos un espacio, tabulador o nueva linea, marcara
el inicio de un bloque anidado. Todo lo que hay hasta la
siguiente llave cerrada dependera de la condicion especificada
para esta receta. Esta permitido el anidamiento ilimitado La
llave que cierra existe simplemente para delimitar el bloque, no
hara que procmail termine de ninguna forma. Si se llega al final
del bloque el procesamiento continuara de la forma habitual
despues del bloque. En los bloque anidados, las banderas `H' y
`B' solo afecta a las iniciales del bloque, las banderas `h' y
`b' no tienen efecto.
Cualquier otra cosa se tomara como un nombre de buzon (bien un nombre
de fichero o bien un directorio, absoluto o relativo al directorio
actual (vease MAILDIR)). Si es un nombre de fichero (posiblemente
inexistente), el correo se anade a el.
Si es un directorio, el correo se entregara a un fichero creado nuevo
con un nombre que se garantiza unico llamado $MSGPREFIX* en el
directorio especificado. Si el nombre del directorio directorio termina
en "/.", entonces se presupone que es una carpeta MH; i.e. procmail
usara el siguiente numero que encuentre disponible. Cuando procmail
esta entregando a directorios, puede especificar multiples directorios
para entregar (procmail la hara usando enlaces duros).
Variables de entoro por defecto
LOGNAME, HOME y SHELL Sus valores (del recipiente) por defecto
SHELLMETAS &|<>~;?*[
SHELLFLAGS -c
ORGMAIL /var/spool/mail/$LOGNAME
(Salvo que se haya especificado -m, en cuyo caso
no tiene valor)
MAILDIR $HOME/
(Salvo que el nombre del primer fichero de
recursos abierto correctamente empiece con Unless
the name of the first successfully opened rcfile
starts with `./' o si se ha especificado -m, ne
cuyo caso se pone por defecto a `.')
DEFAULT $ORGMAIL
MSGPREFIX msg.
SENDMAIL /usr/sbin/sendmail
SENDMAILFLAGS -oi
HOST El nombre actual del host
COMSAT no
(Si se ha especificado un fichero de recursos en
la linea de comando)
PROCMAIL_VERSION 3.13.1
LOCKEXT .lock
Otras variables limpiadas o prefijadas son IFS, ENV, PWD and
PATH=$HOME/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
:/usr/local/sbin:/usr/bin/X11.
Entorno
Antes de que se pierda en la multitud de varables de entorno, tenga en
cuenta que todas ellas tienen valores por defecto razonables.
MAILDIR Directorio actual mientras procmail esta en ejecucion (que
significa que todas las rutas son relativas a $MAILDIR).
DEFAULT Fichero buz'on por defecto (si no se ha dicho otra cosa,
procmail volcara el correo en este buzon). Procmail usara
automaticamente $DEFAULT$LOCKEXT como fichero de bloqueo
antes de escribir en este buzon. No necesita fijar esta
variable, ya que apunta al buzon estandar del sistema.
LOGFILE Este fichero tambien contendra cualquier mensaje de error o
diagnostico de procmail (normalmente ninguno :-) o
cualquier otro programa iniciado por procmail. Si no se
especifica este fichero, cualquier mensaje de diagnostico o
error se devolvera por correo al remitente. Vease tambien
LOGABSTRACT.
VERBOSE Puede activar diagn'osticos extendidos fijando esta variable
a `yes' u `on', para desactivarlos de nuevo pongala a `no'
u `off'.
LOGABSTRACT Justo antes de que procmail termine registra una
descripcion del mensaje entregado en $LOGFILE mostrando los
campos `From ' y `Subject:' de la cabecera, a que carpeta
se entrego finalmente y que tamano tenia (en octetos).
Fijando esta variable a `no', se suprime la generacion de
estos mensajes. Si le asigna el valor `all', procmail
registrara una descripcion para cada receta de entrega
procesada con exito.
LOG Cualquier cosa asignada a esta variable se anade a
$LOGFILE.
ORGMAIL Normalmente el buzon del sistema (ORiGinal MAILbox). Si
por alguna oscura razon (como `sistema de ficheros lleno')
el correo no pudiera entregarse, entonces este buzon es el
ultimo recurso. Si procmail falla para guardar el correo
aqui (gran, gran problema :-), entonces el correo vuelve al
remitente.
LOCKFILE Fichero semaforo global. Si este fichero existe ya,
procmail esperara hasta que se haya ido antes de proceder,
y lo creara el mismo (eliminandolo cuando este listo, desde
luego). Si se especifica mas de un fichero de bloqueo ,
entonces el previo solo se eliminara antes de intentar
crear el nuevo. El uso de un fichero de bloqueo global es
desaconsejable, cuando sea posible use en su lugar ficheros
de bloqueo locales (uno por receta base).
LOCKEXT Extension por defecto que se anade al fichero destino para
determinar que fichero de bloqueo local usar (solo si se
activa, activo por receta base).
LOCKSLEEP Numero de segundos que procmail dormira antes de reintentar
sobre un fichero de bloqueo (si ya existe); si no se
especifica, el valor por defecto es 8 segundos.
LOCKTIMEOUT Numero de segundos que tienen que pasar desde que un
fichero de bloqueo fue modificado/creado antes de que
procmail decida que este deber ser fichero de bloqueo
erroneamente dejado y que puede ser eliminado ahora a la
fuerza. Si es cero el fichero de bloqueo se elimina, si no
se especifica, toma un valor por defecto de 1024 segundos.
Esta variable es util para prevenir cuelgues infinitos de
sendmail/procmail. Procmail es inmune a las desviaciones
de reloj a traves de maquinas.
TIMEOUT Numero de segundos que tienen que haber transcurrido antes
de que procmail decida que algun proceso hijo que el inicio
tiene que terminarlo. El programa en cuestion recibira una
senal TERMINATE de procmail, y el procesamiento del fichero
de recursos continuara. Si vale cero, no se usa
temporizador y procmail esperara indefinidamente hasta que
el hijo termine; si no se especifica, el valor por defecto
es 960 segundos.
MSGPREFIX El prefijo de nombre de fichero que se usa cuando se
entrega a un directorio (no se usa cuando se entrega a un
directorio MH).
HOST Si esto no es el nombre de host de la maquina, el procesado
del fichero de recursos actual cesa inmediatamente. Si otro
fichero de recursos fuera especificado en la linea de
comando, el procesamiento continuara con el siguiente. Si
se agotan todos los ficheros de recursos, el programa
terminara, pero no generara un error (i.e. para el programa
de correo parecera que el correo ha sido entregado).
UMASK El nombre lo dice todo (si no, olvide esto :-). Cualquier
cosa asignada a UMASK se toma como un numero octal. Si no
se especifica, el valor por defecto de umask sera 077. Si
umask permite o+x, todos los buzones a los que entrega
procmail directamente sufriran un cambio de modo a o+x.
Esto se puede usar para verificar si ha llegado nuevo
correo.
SHELLMETAS Si cualesquiera de los caracteres de SHELLMETAS aparece en
la linea que especifica un filtro o programa, la linea se
pasara a $SHELL en lugar de ser ejecutada directamente.
SHELLFLAGS Cualquier llamada a $SHELL sera como:
"$SHELL" "$SHELLFLAGS" "$*";
SENDMAIL Si no usa la facilidad forwarding no se preocupe por esto.
Especifica el programa que se llama para reenviar cualquier
correo.
Se llama como: "$SENDMAIL" "$SENDMAILFLAGS" "$@";
NORESRETRY Numero de reintentos que se llevan a cabo si sucede alguno
de los errores `tabla de procesos llena', `tabla de
ficheros llena', `memoria agotada(out of memory)' o
`espacio swap agotado (out of swap space)'. Si este numero
es negativo, entonces procmail reintentara indefinidamente;
si no se especifica su valor por defecto es 4 veces. Los
reintentos se producen con un intervalo de $SUSPEND
segundos. La idea que hay detras de esto es, que si v.g. el
espacio swap se ha agotado o la tabla de procesos esta
llena, normalmente muchos otros programas lo detectaran
tambien y abortaran o fallaran 8-), en relacion con esto,
libere los recursos que puedan se valiosos para procmail.
SUSPEND Numero de segundos que procmail estara en pausa si tiene
que esperar algo que actualmente no esta dispoible
(memoria, fork, etc.); si no se especifica tomara un valor
por defecto de 16 segundos. Vease tambien: LOCKSLEEP.
LINEBUF Longitud de las lineas de buffer internas, no pueden ser
menores de 128. Todas las lineas leidas del fichero de
recursos Si no se especifica toma el valor por defecto de
2048. Este limite, desde luego, no se aplica al propio
mensaje, que puede tener una longitud de lineas arbitrario,
o podria ser un fichero binario. Vease tambien
PROCMAIL_OVERFLOW.
DELIVERED Si esta con un valor `yes' procmail parecera (al agente de
correo) que el correo ha sido entregado. Si el correo o se
puede entregar tras haberse encontrado con esta asignacion
(puesta a `yes'), el correo se perdera (i.e. el correo no
rebota).
TRAP Cuando procmail termina ejecutara el contenido de esta
variable. Se puede leer una copia del correo de la entrada
estandar. Cualquuier salida producida por este comando se
anadira a $LOGFILE. Los posibles usos de TRAP son:
eliminacion de ficheros temporales, registrar incidencias
personalizadas, etc. Vease tambien EXITCODE y LOGABSTRACT.
EXITCODE Cuando procmail termina y a esta variable se le ha asignado
un valor numerico positivo, procmail los usara como codigo
de salida. Si esta variable esta definida pero vacia,
procmail asignara el codigo de salida con cualquier cosa
que devuelva el programa TRAP devuelva. Si esta variable
no se ha fijado, procmail la fijara antes de llamar al
programa TRAP program.
LASTFOLDER Procmail asigna esta variable cuando esta entregando a una
carpeta o programa. Siempre contiene el nombre de la ultima
carpeta (o programa) al que entrego procmail.
MATCH Procmail asigna esta variable cuando se le dice que
extraiga el texto que concuerda con una expresion regular.
Contendra todo el texto que concuerda con la expresion
regular pasado el `\/'.
SHIFT La asignacion de un valor positivo a esta variable tiene el
mismo efecto que el mandato `shift' en sh(1). Este comando
es mas util para extraer argumentos extra pasados a
procmail cuando actua como filtro de correo generico.
INCLUDERC Nombres de ficheros de recursos (relativos al directorio
actual) se se incluiran aqui como si fueran parte del
fichero de recursos actual. Se permite el anidamiento
ilimitado. Como no se realizan verificaciones sobre los
permisos o la propiedad del fichero de recursos, los
usuarios de INCLUDERC deberian estar seguros de que solo
los usuarios con confianza tienen permiso de escritura en
el fichero de recurso incluido o el directorio en el que
esta.
PROCMAIL_VERSION
El numero de version del binario procmail en ejecucion.
PROCMAIL_OVERFLOW
Esta variable se fijara a un valor no vacio si procmail
detecta un desbordamiento del buffer. Vease tambien la
seccion fallos de abajo para otros detalles de operacion
cuando ocurren los desbordamientos.
COMSAT La notificacion Comsat(8)/biff(1) esta activa por defecto,
se puede desactivar fijando esta variable a `no'. De forma
alternativa, el servicio biff se puede personalizar
poniendolo como `service@', `@hostname', o
`service@hostname'. Cuando no se especifica por defecto to
biff@localhost.
DROPPRIVS Si esta a `yes' procmail anulara todos los privilegios que
pudiera tener (suid o sgid). Esto solo es util si quiere
garantizar que la ultima mitad del fichero /etc/procmailrc
se ejecuta en nombre del recipiente.
Expresiones regulares extendidas
Los siguientes elementos se conocen por el egrep interno de procmail y
el egrep(1) estandar (tenga cuidado que algunos desarrollos de egrep
incluyen otras extensiones no estandar):
^ Inicio de linea.
$ Fin de linea.
. Cualquier caracter salvo nueva linea.
a* Cualquier secuencia de ninguna o mas aes.
a+ Cualquier secuencia de una o mas aes.
a? Ninguna o una a.
[^-a-d] Cualquier caracter que no sea un guion, a, b, c, d o nueva
linea.
de|abc Las secuencias `de' o `abc'.
(abc)* Ninguna o mas veces la secuencia `abc'.
\. Concuerda con un simple punto; use \ para proteger cualquiera
de los caracteres magicos para suprimir su significado
especial. Vease tambien la sustitcion de variables $\ .
Esto eran solo ejemplos, desde luego, cualquier combinacion mas
compleja es valida tambien.
Los significados de los siguientes elementos son extensiones especiales
de procmail:
^ or $ Concuerda con una nueva linea(para concordancia multilinea).
^^ Asocia la expresion al comienzo del area de busqueda, o si se
encuentra al final de la expresion, lo asocia al final de
area de busqueda.
\< o \> Concuerda con el caracter anterio o posterior a una palabra.
Simplemente son abreviaturas de `[^a-zA-Z0-9_]', pero tambien
puede concordar con nuevas lineas. Como concuerdan con los
caracteres actuales, solo sirven para delimitar palabras, no
para delimitar espacio entre palabras.
\/ Divide la expresion en dos partes. Todo lo que cocuerda con
la parte derecha se asignara a la variable de entorno MATCH.
EJEMPLOS
Mire la pagina de manual procmailex(5).
ADVERTENCIAS
Las lineas que continuan en la siguiente en una linea de accion que
especifiquen un programa siempre tienen que terminar en barra
invertida, incluso en el caso que la shell subyacente no necesitara o
quisiera las barras invertidas para indicar la continuacion. Esto es
debido proceso de analisis en dos pasadas que se necesita (primero
procmail, luego la shell (o no, dependiendo de SHELLMETAS)).
No ponga comentarios en las lineas de condiciones de expresiones
regulares de una receta, estas lineas alimentan al egrep interno
literalmente (salvo las barras invertidas al final de linea).
Los espacios en blanco iniciales en las continuaciones de expresiones
regulares normalmente se ignoran (para que se pueda sangrar), pero no
en las lineas de condicion que se evaluan de acuerdo a las reglas de
sustitucion de sh(1) comprendidas entre comillas dobles.
Vigile los bloqueos muertos cuando haga cosas poco saludables como
reenviar correo a us propia cuenta. Los bloqueos muertos se pueden
romper con uso adecuado de LOCKTIMEOUT.
Cualesquiera valores por defecto que tenga procmail para alguna
variable de entorno siempre se sobrepone a los que ya estuvieran
definidos. Si realmente quiere sobreponer estos valores por defecto,
los puede poner bien en el fichero de recursos o en la linea de
mandatos como un argumento.
Las variables de entorno fijadas dentro de la parte de accion
interpretadas por la the shell-`|' de una receta no conservara sus
valores tras haber finalizado la receta ya que se asignan en uan
subshell de procmail. Para estar seguro de que el valor de las
variables de entorno retienen su valor tiene que poner la asignacion a
la variable antes del `|' inicial de una receta, de forma que pueda
capturar la salida estandar del programa.
Si especifica solo una bandera `h' o una `b' en una receta de entrega,
y la receta concuerda, entonces, salvo que este presente la bandera `c'
tambien, el cuerpo y las cabeceras respectivas del correo se pierden
silenciosamente.
V'EASE TAMBI'EN
procmail(1), procmailsc(5), procmailex(5), sh(1), csh(1), mail(1),
mailx(1), binmail(1), uucp(1), aliases(5), sendmail(8), egrep(1),
regexp(5), grep(1), biff(1), comsat(8), lockfile(1), formail(1)
FALLOS (BUGS)
La unica sustitucion de variables de entorno que puede ser gestionada
por el propio procmail son del tipo $name, ${name}, ${name:-text},
${name:+text}, ${name-text}, ${name+text}, $\name, $#, $n, $$, $?, $_,
$- y $=; por lo cual $\name se sustituira por todos caracteres de la
expresion regular magica desarmada equivalente de $name, $_ por el
nombre del fichero de recursos actual, $- por $LASTFOLDER y $=
contendra la puntuacion de la ultima receta. Cuando se usan las
opciones -a o -m, "$@" se expande a los argumentos especificos
respectivos (lista); pero solo cuando se pasa en la lista de argumentos
a un programa.
Procmail no soporta la expansion de `~'.
Se usa una linea de buffer de longitud $LINEBUF cuando se procesa el
fichero de recursos, cualquier expansion que no se ajuste a estos
limites se truncara y se asigna valor a PROCMAIL_OVERFLOW. Si la linea
desbordada es una condicion o una linea de accion, se considerara fallo
y procmail continuara procesando. Si es una asignacion de variable o
linea de comienzo de receta entonces procmail abortara el fichero de
recursos entero.
Si el fichero de bloquo global tiene una ruta relativa y el directorio
actual no es el mismo que cuando el fichero de bloqueo local se creo,
entonces el fichero de bloquo global no se eliminara si porcmail existe
en ese punto (remedio: use rutas absolutas para especificar ficheros de
bloqueo globales).
Si un fichero de recursos tiene una ruta relativa y cuando el fichero
se abre por primera vez MAILDIR contiene una ruta relativa, y si en
este punto procmail tiene que clonarse y el directorio actual ha
cambiado desde que el fichero de recusos se abrio, entonces procmail no
podra colonarse el mismo (remedio: use una ruta absoluta para indicar
el fichero de recursos o este seguro que MAILDIR contiene una ruta
absoluta como el fichero de recursos abierto).
Un fichero de bloqueo local de una receta que marca el comienzo de un
bloque anidado sin fork no funciona como se esperaria.
Cuando capture la salida estandar de una receta en una variable de
entorno, se eliminara exactamente un caracter final de nueva linea.
MISCELANEA
Si la expresion regular contiene `^TO_' sera sustituido por
`(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope
|Apparently(-Resent)?)-To):(.*[^-a-zA-Z0-9_.])?)', que deberia capturar
todas las especificaciones de destino que contienen una direcci'on
especifica.
Si la expresion regular contiene `^TO' sera sustituido por
`(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope
|Apparently(-Resent)?)-To):(.*[^a-zA-Z])?)', que deberia capturar todas
las especificaciones de destino que contienen una palabra especifica.
Si la expresion regular contiene `^FROM_DAEMON' sera sustituido por
`(^(Mailing-List:|Precedence:.*(junk|bulk|list)|To: Multiple recipients
of |(((Resent-)?(From|Sender)|X-Envelope-From):|>?From )([^>]*[^(.%@a-
z0-9])?(Post(ma?(st(e?r)?|n)|office)|(send)?Mail(er)?|daemon|m(mdf
|ajordomo)|n?uucp|LIST(SERV|proc)|NETSERV|o(wner|ps)|r(e(quest|sponse)
|oot)|b(ounce|bs\.smtp)|echo|mirror|s(erv(ices?|er)|mtp(error)?|ystem)
|A(dmin(istrator)?|MMGR|utoanswer))(([^).!:a-z0-9][-_a-z0-9]*)?[%@>\t
][^<)]*(\(.*\).*)?)?$([^>]|$)))', que deberia capturar los correos que
llegan de la mayoria de los demonios (como es eso para una expresion
regular :-).
Si la expresion regular contiene `^FROM_MAILER' se susrituira por
`(^(((Resent-)?(From|Sender)|X-Envelope-From):|>?From )([^>]*[^(.%@a-
z0-9])?(Post(ma(st(er)?|n)|office)|(send)?Mail(er)?|daemon|mmdf|n?uucp
|ops|r(esponse|oot)|(bbs\.)?smtp(error)?|s(erv(ices?|er)|ystem)
|A(dmin(istrator)?|MMGR))(([^).!:a-z0-9][-_a-z0-9]*)?[%@>\t
][^<)]*(\(.*\).*)?)?$([^>]|$))' (una version reducida de
`^FROM_DAEMON'), que deberia capturar los correo que llegan de la
mayoria de los demonios de correo.
Cuando asigna valores booleanos a variables como VERBOSE, DELIVERED o
COMSAT, procmail acepta como verdadero cualquier cadena que comience
por un valor no cero, `on', `y', `t' or `e'. Falso es todo lo que
empiece por una valor cero, `off',`n', `f' o `d'.
Si la linea de accion de una receta especifica un programa, un unico
par barra invertida-nueva linea en ella sobre una linea vacia se
convertira en una nueva linea.
El motor de expresion regular construido en procmail no soporta
denominaciones de clases de caracteres
NOTAS
Como lo espacios iniciales sin commillas son ignorados en el fichero de
recuros, puede sangra el texto a su gusto.
El simpbolo `|' inicial en la linea de accion para especificar un
programa o filtro se elimina antes de verificar $SHELLMETAS.
Los ficheros incluidos en la directiva INCLUDERC que solo contengan
asignaciones de variables de entorno se puede compartir con sh.
Para procesamientos realmente complicados incluso puede considerar el
llamar a procmail recursivamente.
En los viejos tiempos, la `:0' que marca el comienzo de una receta,
tuvo que cambiarse a `:n', donde `n' indica el numero de condiciones
que siguen.
AUTOR
Stephen R. van den Berg
<srb@cuci.nl>