Provided by: manpages-es-extra_0.8a-17_all bug

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>