NOMBRE
procmailrc - fichero de recursos de procmailSINOPSIS
$HOME/.procmailrcDESCRIPCIÓN
Para un comienzo rápido, véase NOTAS al final de la página 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 más simple, las recetas son sólamente una expresión regular de una línea 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á el procesamiento del fichero de recursos tras haber ejecutado adecuadamente la línea de acción de la receta. Si se encuentra una receta de no entrega que concuerda, el procesado del fichero de recursos continuará una vez que la línea de acción 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 dirección 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 hará que procmail genere una copia de carbón del correo para entregarlo a esta receta y continúa procesando el fichero de recursos. Usando cierto número 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 usará 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 añadido 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 tendrá el todo el correo como su entrada estándar.Comentario
Una palabra que comience por # y el resto de los caracteres hasta el carácter de nueva línea se ignoran. Esto no se aplica a las líneas de condición, que no se pueden comentar.Recetas
Una línea que comience por ':' indica el comienzo de una receta. Esto tiene el siguiente formato::0 [ banderas] [ : [fichero_bloqueo_local] ] <ninguna o más condiciones (una por línea)> <exactamente una línea de acción>
Las condiciones comienzan con un `*' inicial, todo lo que viene tras este carácter 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. Véase también Expresiones regulares extendidas. La condiciones se unen mediante Y (and); si no hay condiciones el resultado será 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
mayúsculas y minúsculas (contrario al comportamiento por
defecto que ignora esta distinción).
- A
- Esta receta no se ejecutará salvo que las
condiciones de la última receta precedente (del nivel de bloque
anidado actual) sin las banderas `A' o `a' se verificaron. Esto permite
encadenar acciones que dependan de una condición común.
- a
- Tiene el mismo significado que la bandera `A', con la
condición adicional que la receta inmediatamente precedente tiene
que completarse correctamente antes de ejecutar esta receta.
- E
- Esta receta sólo se ejecuta si la receta
inmediatamente precedente no se ejecutó. La ejecución de
esta receta también desactiva cualquier receta inmediatamente
posterior con la bandera 'E'. Esto le permite especificar acciones `else
if'.
- e
- Esta receta sólo se ejecuta si falló
la receta inmediatamente anterior (i.e. la acción se
intentó, pero ocasionó un error).
- h
- Alimenta la cabecera a un tubería, fichero o destino
de correo (por defecto).
- b
- Alimenta el cuerpo a un tubería, fichero o destino
de correo (por defecto).
- f
- Considera la tubería como un filtro.
- c
- Genera una copia de carbón de este mensaje.
Esto sólo tiene sentido en las recetas de entrega. En la
única receta de no entrega que esta bandera tiene efecto es en un
bloque anidado, para generar una copia de carbón esto
duplica el proceso procmail en ejecución (los ficheros de
bloqueo no se heredan), por lo cual el proceso duplicado actuará de
forma normal y el padre saltará el bloque.
- w
- Espera que termine el filtro o programa y verifica su
código se salida (normalmente ignorado); si el filtro no tiene
éxito, el texto no será filtrado.
- W
- Tiene el mismo significado que la bandera `w', pero
suprimirá cualquier mensaje `Fallo de Programa'.
- i
- Ignora cualquier error de escritura en esta receta (i.e.
normalmente debido a una tubería cerrada prematuramente).
- r
- Modo de estado original (raw mode), no intenta asegurarse de que el mensaje termina en un línea vacía, lo escribe tal cual.
- !
- Invierte la condición.
- $
- Evalúa el resto de esta condición
según las reglas de sustitución de sh(1) dentro de
las dobles comillas, salta los espacios iniciales y entonces la vuelve a
analizar.
- ?
- Usa el código de salida del programa especificado.
- <
- Verifica si la longitud total del correo es más
corta que el número de octetos especificado (en decimal).
- >
- Análogo a '<'.
- nombre_de_variable ??
- Concuerda el resto de esta condición 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 área cabecera/cuerpo por defecto
definida por la bandera inicial de esta receta.
- \
- Para entrecomillar algo de lo anterior al inicio de la
línea.
Fichero de bloqueo local
Si pone unos segundos ':' (detrás) en la primera línea de receta, entonces procmail usará un fichero de bloqueo local (para esta receta sólo). Opcionalmente puede especificar el fichero de bloqueo local que quiere usar; si no lo hace procmail usará el nombre de fichero destino (o el nombre de fichero a continuación del primer '>>') y le añadirá $LOCKEXT.Línea de acción de receta
La línea de acción puede comenzar con los siguientes caracteres:- !
- Reenvía 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 símbolo de tubería en variable=, lo que
hará que la salida estándar del programa sea capturado en la
variable de entorno (procmail no termina el preprocesado del
fichero de recursos en este punto). si especifica el símbolo de
tubería, sin ningún programa, procmail dirige el correo a la
salida estándar.
- {
- Seguido de al menos un espacio, tabulador o nueva línea, marcará el inicio de un bloque anidado. Todo lo que hay hasta la siguiente llave cerrada dependerá de la condición especificada para esta receta. Está permitido el anidamiento ilimitado La llave que cierra existe simplemente para delimitar el bloque, no hará que procmail termine de ninguna forma. Si se llega al final del bloque el procesamiento continuará de la forma habitual después del bloque. En los bloque anidados, las banderas `H' y `B' sólo afecta a las iniciales del bloque, las banderas `h' y `b' no tienen efecto.
Variables de entoro por defecto
- LOGNAME, HOME and USER_SHELL
- Sus valores (del recipiente) por defecto
- SHELL
- /bin/sh
- PATH
- $HOME/bin :/usr/local/bin :/usr/bin :/bin (Except during
the processing of an /etc/procmailrc file, when it will be set to
`/usr/local/bin :/usr/bin :/bin'.)
- SHELLMETAS
- & |<>~;?*[
- SHELLFLAGS
- -c
- ORGMAIL
- /var/mail/$LOGNAME
- MAILDIR
- $HOME
- DEFAULT
- $ORGMAIL
- MSGPREFIX
- msg.
- SENDMAIL
- /usr/sbin/sendmail
- SENDMAILFLAGS
- -oi
- HOST
- El nombre actual del host
- COMSAT
- no
- PROCMAIL_VERSION
- 3.24
- LOCKEXT
- .lock
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 está en
ejecución (que significa que todas las rutas son relativas a
$MAILDIR).
- DEFAULT
- Fichero buzón por defecto (si no se ha dicho
otra cosa, procmail volcará el correo en este buzón).
Procmail usará automáticamente $DEFAULT$LOCKEXT como fichero
de bloqueo antes de escribir en este buzón. No necesita fijar esta
variable, ya que apunta al buzón estándar del sistema.
- LOGFILE
- Este fichero también contendrá cualquier
mensaje de error o diagnóstico de procmail (normalmente ninguno :-)
o cualquier otro programa iniciado por procmail. Si no se especifica este
fichero, cualquier mensaje de diagnóstico o error se
devolverá por correo al remitente. Véase también
LOGABSTRACT.
- VERBOSE
- Puede activar diagnósticos extendidos fijando
esta variable a `yes' u `on', para desactivarlos de nuevo póngala a
`no' u `off'.
- LOGABSTRACT
- Justo antes de que procmail termine registra una
descripción del mensaje entregado en $LOGFILE mostrando los campos
`From ' y `Subject:' de la cabecera, a qué carpeta se
entregó finalmente y qué tamaño tenía (en
octetos). Fijando esta variable a `no', se suprime la generación de
estos mensajes. Si le asigna el valor `all', procmail registrará
una descripción para cada receta de entrega procesada con
éxito.
- LOG
- Cualquier cosa asignada a esta variable se añade a
$LOGFILE.
- ORGMAIL
- Normalmente el buzón del sistema
(ORiGinal MAILbox). Si por alguna oscura razón
(como ` sistema de ficheros lleno') el correo no pudiera
entregarse, entonces este buzón es el último recurso. Si
procmail falla para guardar el correo aquí (gran, gran problema
:-), entonces el correo vuelve al remitente.
- LOCKFILE
- Fichero semáforo global. Si este fichero existe ya,
procmail esperará hasta que se haya ido antes de proceder, y lo
creará él mismo (eliminándolo cuando esté
listo, desde luego). Si se especifica más de un fichero de
bloqueo , entonces el previo sólo se eliminará 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
- Extensión por defecto que se añade al fichero
destino para determinar que fichero de bloqueo local usar
(sólo si se activa, activo por receta base).
- LOCKSLEEP
- Número de segundos que procmail dormirá antes
de reintentar sobre un fichero de bloqueo (si ya existe); si no se
especifica, el valor por defecto es 8 segundos.
- LOCKTIMEOUT
- Número 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 erróneamente 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 útil para prevenir cuelgues infinitos de
sendmail/procmail. Procmail es inmune a las desviaciones de reloj a
través de máquinas.
- TIMEOUT
- Número de segundos que tienen que haber transcurrido
antes de que procmail decida que algún proceso hijo que él
inició tiene que terminarlo. El programa en cuestión
recibirá una señal TERMINATE de procmail, y el procesamiento
del fichero de recursos continuará. Si vale cero, no se usa
temporizador y procmail esperará 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
máquina, el procesado del fichero de recursos actual cesa
inmediatamente. Si otro fichero de recursos fuera especificado en la
línea de órdenes, el procesamiento continuará con el
siguiente. Si se agotan todos los ficheros de recursos, el programa
terminará, pero no generará un error (i.e. para el programa
de correo parecerá 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 número octal. Si no se
especifica, el valor por defecto de umask será 077. Si umask
permite o+x, todos los buzones a los que entrega procmail directamente
sufrirán 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 línea que especifica un filtro o programa, la línea se
pasará a $SHELL en lugar de ser ejecutada directamente.
- SHELLFLAGS
- Cualquier llamada a $SHELL será como:
- SENDMAIL
- Si no usa la facilidad forwarding no se preocupe por
esto. Especifica el programa que se llama para reenviar cualquier correo.
- NORESRETRY
- Número 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 número
es negativo, entonces procmail reintentará 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 detrás de
esto es, que si v.g. el espacio swap se ha agotado o la
tabla de procesos está llena, normalmente muchos
otros programas lo detectarán también y abortarán o
fallarán 8-), en relación con esto, libere los
recursos que puedan se valiosos para procmail.
- SUSPEND
- Número de segundos que procmail estará en
pausa si tiene que esperar algo que actualmente no está dispoible
(memoria, fork, etc.); si no se especifica tomará un valor por
defecto de 16 segundos. Véase también: LOCKSLEEP.
- LINEBUF
- Longitud de las líneas de buffer internas, no pueden
ser menores de 128. Todas las líneas leídas del fichero
de recursos Si no se especifica toma el valor por defecto de 2048.
Este límite, desde luego, no se aplica al propio mensaje,
que puede tener una longitud de líneas arbitrario, o podría
ser un fichero binario. Véase también PROCMAIL_OVERFLOW.
- DELIVERED
- Si está con un valor `yes' procmail parecerá
(al agente de correo) que el correo ha sido entregado. Si el correo o se
puede entregar tras haberse encontrado con esta asignación (puesta
a `yes'), el correo se perderá (i.e. el correo no rebota).
- TRAP
- Cuando procmail termina ejecutará el contenido de
esta variable. Se puede leer una copia del correo de la entrada
estándar. Cualquuier salida producida por esta orden se
añadirá a $LOGFILE. Los posibles usos de TRAP son:
eliminación de ficheros temporales, registrar incidencias
personalizadas, etc. Véase también EXITCODE y
LOGABSTRACT.
- EXITCODE
- Cuando procmail termina y a esta variable se le ha asignado
un valor numérico positivo, procmail los usará como
código de salida. Si esta variable está definida pero
vacía, procmail asignará el código de salida con
cualquier cosa que devuelva el programa TRAP devuelva. Si esta
variable no se ha fijado, procmail la fijará antes de llamar al
programa TRAP program.
- LASTFOLDER
- This variable is assigned to by procmail whenever it is
delivering to a folder or program. It always contains the name of the last
file (or program) procmail delivered to. If the last delivery was to
several directory folders together then $LASTFOLDER will contain the
hardlinked filenames as a space separated list.
- MATCH
- Procmail asigna esta variable cuando se le dice que
extraiga el texto que concuerda con una expresión regular.
Contendrá todo el texto que concuerda con la expresión
regular pasado el ` \/'.
- SHIFT
- La asignación de un valor positivo a esta variable
tiene el mismo efecto que el mandato `shift' en sh(1). Esta orden
es más útil para extraer argumentos extra pasados a procmail
cuando actúa como filtro de correo genérico.
- INCLUDERC
- Names an rcfile (relative to the current directory) which
will be included here as if it were part of the current rcfile. Nesting is
permitted and only limited by systems resources (memory and file
descriptors). As no checking is done on the permissions or ownership of
the rcfile, users of INCLUDERC should make sure that only trusted
users have write access to the included rcfile or the directory it is in.
Command line assignments to INCLUDERC have no effect.
- SWITCHRC
- Names an rcfile (relative to the current directory) to
which processing will be switched. If the named rcfile doesn't exist or is
not a normal file or /dev/null then an error will be logged and processing
will continue in the current rcfile. Otherwise, processing of the current
rcfile will be aborted and the named rcfile started. Unsetting
SWITCHRC aborts processing of the current rcfile as if it had ended
at the assignment. As with INCLUDERC, no checking is done on the
permissions or ownership of the rcfile and command line assignments have
no effect.
- PROCMAIL_VERSION
- The version number of the running procmail binary.
- PROCMAIL_OVERFLOW
- Esta variable se fijará a un valor no vacío
si procmail detecta un desbordamiento del buffer. Véase
también la sección FALLOS de abajo para otros
detalles de operación cuando ocurren los desbordamientos.
- COMSAT
- La notificación Comsat(8)/biff(1)
está activa por defecto, se puede desactivar fijando esta variable
a `no'. De forma alternativa, el servicio biff se puede personalizar
poniéndolo como `service@', `@hostname', o `service@hostname'.
Cuando no se especifica por defecto to biff@localhost.
- DROPPRIVS
- Si está a `yes' procmail anulará todos los
privilegios que pudiera tener (suid o sgid). Esto sólo es
útil si quiere garantizar que la última mitad del fichero
/etc/procmailrc se ejecuta en nombre del recipiente.
Expresiones regulares extendidas
The following tokens are known to both the procmail internal egrep and the standard egrep(1) (beware that some egrep implementations include other non-standard extensions; in particular, the repetition operator { is not supported by procmail's egrep):- ^
- Inicio de línea.
- $
- Fin de línea.
- .
- Cualquier carácter salvo nueva línea.
- a*
- Cualquier secuencia de ninguna o más aes.
- a+
- Cualquier secuencia de una o más aes.
- a?
- Ninguna o una a.
- [^-a-d]
- Cualquier carácter que no sea un guion, a, b,
c, d o nueva línea.
- de|abc
- Las secuencias `de' o `abc'.
- (abc)*
- Ninguna o más veces la secuencia `abc'.
- \.
- Concuerda con un simple punto; use \ para proteger cualquiera de los caracteres mágicos para suprimir su significado especial. Véase también la sustitción de variables $\ .
- ^ o $
- Concuerda con una nueva línea (para concordancia
multilínea).
- ^^
- Asocia la expresión al comienzo del área de
búsqueda, o si se encuentra al final de la expresión, lo
asocia al final de área de búsqueda.
- \< o \>
- Concuerda con el carácter anterio o posterior a una
palabra. Simplemente son abreviaturas de `[^a-zA-Z0-9_]', pero
también puede concordar con nuevas líneas. Como concuerdan
con los caracteres actuales, sólo sirven para delimitar palabras,
no para delimitar espacio entre palabras.
- \/
- Divide la expresión en dos partes. Todo lo que
cocuerda con la parte derecha se asignará a la variable de entorno
MATCH.
EJEMPLOS
Mire la página de manual procmailex(5).ADVERTENCIAS
Las líneas que continúan en la siguiente en una línea de acción 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 continuación. Esto es debido proceso de análisis en dos pasadas que se necesita (primero procmail, luego la shell (o no, dependiendo de SHELLMETAS)). No ponga comentarios en las líneas de condiciones de expresiones regulares de una receta, estas líneas alimentan al egrep interno literalmente (salvo las barras invertidas al final de línea). Los espacios en blanco iniciales en las continuaciones de expresiones regulares normalmente se ignoran (para que se pueda sangrar), pero no en las líneas de condición que se evalúan de acuerdo a las reglas de sustitución 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 línea de mandatos como un argumento. The /etc/procmailrc file cannot change the PATH setting seen by user rcfiles as the value is reset when procmail finishes the /etc/procmailrc file. While future enhancements are expected in this area, recompiling procmail with the desired value is currently the only correct solution. Las variables de entorno fijadas dentro de la parte de acción interpretadas por la the shell-`|' de una receta no conservará 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 asignación a la variable antes del `|' inicial de una receta, de forma que pueda capturar la salida estándar del programa. Si especifica sólo una bandera `h' o una `b' en una receta de entrega, y la receta concuerda, entonces, salvo que esté presente la bandera `c' también, el cuerpo y las cabeceras respectivas del correo se pierden silenciosamente.VÉASE TAMBIÉN
procmail(1), procmailsc(5), procmailex(5), sh(1), csh(1), mail(1), mailx(1), uucp(1), aliases(5), sendmail(8), egrep(1), regexp(5), grep(1), biff(1), comsat(8), lockfile(1), formail(1)ERRORES
The only substitutions of environment variables that can be handled by procmail itself are of the type $name, ${name}, ${name:-text}, ${name:+text}, ${name-text}, ${name+text}, $\name, $#, $n, $$, $?, $_, $- and $=; whereby $\name will be substituted by the all-magic-regular-expression-characters-disarmed equivalent of $name, $_ by the name of the current rcfile, $- by $LASTFOLDER and $= will contain the score of the last recipe. Furthermore, the result of $\name substitution will never be split on whitespace. When the -a or -m options are used, $# will expand to the number of arguments so specified and "$@" (the quotes are required) will expand to the specified arguments. However, "$@" will only be expanded when used in the argument list to a program, and then only one such occurrence will be expanded. Unquoted variable expansions performed by procmail are always split on space, tab, and newline characters; the IFS variable is not used internally. Procmail no soporta la expansión de `~'. Se usa una línea de buffer de longitud $LINEBUF cuando se procesa el fichero de recursos, cualquier expansión que no se ajuste a estos límites se truncará y se asigna valor a PROCMAIL_OVERFLOW. Si la línea desbordada es una condición o una línea de acción, se considerará fallo y procmail continuará procesando. Si es una asignación de variable o línea de comienzo de receta entonces procmail abortará 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 creó, entonces el fichero de bloquo global no se eliminará 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 abrió, entonces procmail no podrá colonarse él mismo (remedio: use una ruta absoluta para indicar el fichero de recursos o esté 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 esperaría. Cuando capture la salida estándar de una receta en una variable de entorno, se eliminará exactamente un carácter final de nueva línea. Some non-optimal and non-obvious regexps set MATCH to an incorrect value. The regexp can be made to work by removing one or more unneeded '*', '+', or '?' operators on the left-hand side of the \/ token.MISCELÁNEA
Si la expresión regular contiene ` ^TO_' será sustituido por ` (^((Original-)?(Resent-)?(To |Cc |Bcc) |(X-Envelope |Apparently(-Resent)?)-To) :(.*[^-a-zA-Z0-9_.])?)', que debería capturar todas las especificaciones de destino que contienen una dirección específica. Si la expresión regular contiene ` ^TO' será sustituido por ` (^((Original-)?(Resent-)?(To |Cc |Bcc) |(X-Envelope |Apparently(-Resent)?)-To) :(.*[^a-zA-Z])?)', que debería capturar todas las especificaciones de destino que contienen una palabra especifica. Si la expresión regular contiene ` ^FROM_DAEMON' será 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 debería capturar los correos que llegan de la mayoría de los demonios (como es eso para una expresión regular :-). Si la expresión regular contiene ` ^FROM_MAILER' se susrituirá 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 versión reducida de ` ^FROM_DAEMON'), que debería capturar los correo que llegan de la mayoría 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 línea de acción de una receta especifica un programa, un único par barra invertida-nueva línea en ella sobre una línea vacía se convertirá en una nueva línea. El motor de expresión regular construido en procmail no soporta denominaciones de clases de caracteresNOTAS
Como lo espacios iniciales sin commillas son ignorados en el fichero de recuros, puede sangra el texto a su gusto. El símpbolo `|' inicial en la línea de acción para especificar un programa o filtro se elimina antes de verificar $SHELLMETAS. Los ficheros incluidos en la directiva INCLUDERC que sólo contengan asignaciones de variables de entorno se puede compartir con sh. The current behavior of assignments on the command line to INCLUDERC and SWITCHRC is not guaranteed, has been changed once already, and may be changed again or removed in future releases. 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 número de condiciones que siguen.AUTORES
Stephen R. van den BergTRADUCCIÓN
La traducción al español de esta página del manual fue creada por Pedro Pablo Fábrega <[email protected]> Esta traducción es documentación libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a [email protected]BuGless |