PROCMAILRC
Section: File Formats (5)
Updated: 1999/02/26
Index Return to Main
Contents
NOMBRE
procmailrc - fichero de recursos de procmail
SINOPSIS
$HOME/.procmailrc DESCRIPCIÓ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.
Hay algunas condiciones especiales que puede usar que no son
expresiones regulares puras. Para seleccionarlas, la condición debe
comenzar con:
- !
- 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.
Cualquier otra cosa se tomará como un nombre de buzón (bien un
nombre de fichero o bien un directorio, absoluto o relativo al
directorio actual (véase MAILDIR)). Si es un nombre de fichero
(posiblemente inexistente), el correo se añade a él.
Si es un directorio, el correo se entregará a un fichero creado
nuevo con un nombre que se garantiza único 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 usará el siguiente número que encuentre disponible. Cuando
procmail está entregando a directorios, puede especificar múltiples
directorios para entregar (procmail la hará 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 línea 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 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 comando, 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:
"$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
- 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 este comando 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
- Procmail asigna esta variable cuando está entregando a una
carpeta o programa. Siempre contiene el nombre de la última carpeta
(o programa) al que entregó procmail.
- 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).
Este comando es más útil para extraer argumentos extra pasados a
procmail cuando actúa como filtro de correo genérico.
- INCLUDERC
- Nombres de ficheros de recursos (relativos al directorio
actual) se se incluirán aquí 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 deberían
estar seguros de que sólo los usuarios con confianza tienen permiso
de escritura en el fichero de recurso incluido o el directorio en
el que está.
- PROCMAIL_VERSION
- El número de versión del binario procmail en ejecución.
- 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
Los siguientes elementos se conocen por el egrep interno de
procmail y el egrep(1)
estándar (tenga cuidado que algunos desarrollos de egrep incluyen
otras extensiones no estándar):
- ^
- 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 $\ .
Esto eran sólo ejemplos, desde luego, cualquier combinación más
compleja es válida también.
Los significados de los siguientes elementos son extensiones
especiales de procmail:
- ^ or $
- 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.
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),
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 única sustitución 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 sustituirá por
todos caracteres de la expresión regular mágica desarmada
equivalente de $name, $_ por el nombre del fichero de recursos
actual, $- por $LASTFOLDER y $= contendrá la puntuación de la
última receta. Cuando se usan las opciones -a o -m,
"$@" se expande a los argumentos específicos respectivos (lista);
pero sólo cuando se pasa en la lista de argumentos a un programa.
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.
MISCELANEA
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 caracteres
NOTAS
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.
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.
AUTOR
Stephen R. van den Berg
- <[email protected]>
Index
- NOMBRE
- SINOPSIS
- DESCRIPCIÓN
-
- Comentario
- Recetas
- Fichero de bloqueo local
- Línea de acción de receta
- Variables de entoro por defecto
- Entorno
- Expresiones regulares extendidas
- EJEMPLOS
- ADVERTENCIAS
- VÉASE TAMBIÉN
- FALLOS (BUGS)
- MISCELANEA
- NOTAS
- AUTOR
This document was created by man2html, using
the manual pages.
Time: 20:28:08 GMT, January 21, 2005