Provided by: manpages-es-extra_0.8a-19_all 

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
<srb@cuci.nl>
BuGless 1999/02/26 PROCMAILRC(5)