Provided by: manpages-es-extra_0.8a-16_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 carbn 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 diagnsticos 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 direccin
       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>