table of contents
FORMAIL(1) | General Commands Manual | FORMAIL(1) |
formail - (re)formateador de correo
formail [+skip] [-total]
[-vbczfrktedqBY] [-p prefijo] [-D maxlong
idcache] [-x campo_cabecera] [-X
campo_cabecera] [-a campo_cabecera] [-A
campo_cabecera] [-i campo_cabecera] [-I
campo_cabecera] [-u campo_cabecera] [-U
campo_cabecera] [-R viejocampo nuevocampo]
[-n [maxprocs ]] [-m mincampos] [-s
[command [arg ...]]]
formail es un filtro que se puede usar para forzar correo en un formato
de buzón, proteger `From', generar cabeceras de autorespuesta, hacer
simples transformaciones/extracciones o dividir un fichero de
buzón/recopilación/artículos. Los contenidos de
correo/buzón/artículos se esperan de la entrada estándar.
Si formail se supone que tiene que determinar el remitente del mensaje pero es
incapaz de encontrarlo, lo sustituirá por `foo@bar'.
Si formail se inicia sin opciones en la línea de mandatos, forzará
cualquier correo que llegue de la entrada estándar al formato de
buzón y protegerá todos las líneas `From ' ficticias con
un `>'.
-v Formail mostrará su número de versión y sale.
-b No protege ninguna cabecera de buzón ficticia (i.e. las
líneas que empiezan por `From ').
-p prefijo Define un prefijo diferente para las citas (del
original). Si no es especifica el valor por defecto es `>'.
-Y Supone el formato tradicional de buzón de Berkeley, ignorando los
campos Content-Length:.
-c Concatena los campos de la cabecera que continúan. Podría
ser conveniente cuando se postprocesa correo con utilidades de texto
estándares (orientadas a línea).
-z Asegura que existen los espacios en blanco entre el nombre de campo y
el contenido. Borra los campos que contienen sólo un simple carácter
de espacio. Borra los espacios en blanco iniciales u finales en campos
extraídos con -x.
-f Fuerza a formail a simplemente pasar sobre cualquier formato no de
buzón (i.e. no genera una línea `From ' como primera línea).
-r Genera una cabecera auto-respuesta. Esto normalmente elimina todos los
campos existentes (salvo X-Loop:) del mensaje original, los campos que quiera
conservar necesitan indicarse usando la opción -i. Si usa esta
opción conjuntamente con -k, puede prevenir que el cuerpo sea
`protegido' especificando -b.
-k Cuando genere la cabecera auto-respuesta o cuando extraiga campos,
mantiene el cuerpo también.
-t Confía que el remitente ha usado una dirección de respuesta
válida en su cabecera. Esta opción será más útil
cuando genere cabeceras de auto-respuestas de artículos de noticias. Si
esta opción no está activa, formail tiende a favorecer direcciones
generadas por la máquina en la cabecera.
-s La entrada se dividirá en dos mensajes de correo separados, y
dirigidos a un programa uno a uno (se inicia un nuevo programa por cada
parte). -s tiene que ser la última opción especificada, el
primer argumento que lo siga se espera que sea un nombre de programa,
cualquier otro argumento se pasará. Si omite el programa, entonces
formail simplemente concatena lo correos divididos en la salida estándar
de nuevo. Véase FILENO.
-n [maxprocs] Le dice a formail que no espere que cualquier
programa termine antes de empezar el siguiente (hace que las divisiones sean
procesadas en paralelo). Maxprocs especifica, opcionalmente un
límite superior de número de procesos en ejecución concurrente.
-e No requiere que líneas vacías precedan las cabeceras de un
nuevo mensaje (i.e. los mensajes podrían empezar en cualquier
línea).
-d Le dice a formail que los mensajes que supone dividir no necesitan
estar en un formato de buzón estricto (i.e. permite dividir
recopilaciones/artículos en formatos de buzón no estándares).
Esto desactiva el reconocimiento del campo Content-Length:.
-B Hace que formail suponga que está dividiendo un fichero BABYL
rmail file.
-m mincampos Le permite especificar el número de campos de
cabecera consecutivos que formail necesita encontrar antes de que decida que
ha encontrado el comienzo de un nuevo mensaje, por defecto a 2.
-q Le dice a formail que (aunque detecte pero) no haga nada sobre errores
de escritura, mensajes duplicados y campos Content-Length:
inconsistentes. Esta opción está activa por defecto, para hacer que
muestre los mensajes use -q-.
-D maxlen idcache Formail detectará si el Message-ID del
mensaje actual ya ha sido visto usando un fichero idcache de un
tamaño aproximado maxlen Si no divide, devolverá el
código de salida correcta si ha encontrado un duplicado. Si divide, no
sacará mensajes duplicados. Si se usa conjuntamente con -r,
formail mirará en su lugar la dirección de correo del
remitente en el Message-ID.
-x campo_cabecera Extrae el contenido de este
campo_cabecera de la cabecera, lo muestra como una simple línea.
-X campo_cabecera Lo mismo que -x, pero también
conserva el nombre de campo.
-a campo_cabecera Añade un campo_cabecera
personalizado en la cabecera; pero sólo si no existe un campo similar con
anterioridad. Si especifica algunos de los nombres de campo Message-ID:
o Resent-Message-ID: sin contenido de campo, formail generará un
único message-ID para vd.
-A campo_cabecera Añade un campo_cabecera
personalizado en el cabecera en cualquier caso.
-i campo_cabecera Lo mismo que -A, salvo que cualquier
campo similar existente se renombran anteponiéndolo un prefijo ``Old-''.
Si campo_cabecera consiste sólo en un nombre de campo, no se
añadirá.
-I campo_cabecera Lo mismo que -i, salvo que cualquier
campo similar existente simplemente se elimina. Si campo_cabecera
consiste sólo en un nombre de campo, borra de forma efectiva el campo.
-u campo_cabecera Hace única la primera ocurrencia de este
campo, y así pues, borra todas las apariciones posteriores.
-U campo_cabecera Hace única la última ocurrencia de
este campo, y así pues, borra todas las apariciones previas.
-R oldfield newfield Renombra todas las ocurrencias del campo
oldfield a newfield.
+skip Salta el primer mensaje skip cuando divide.
-total Saca como máximo total mensajes mientras
divide.
FILENO Mientras divide, procmail asigna el número de mensaje que
sale actualmente a esta variable. Prefijando FILENO, puede cambiar el
número de mensaje inicial usado que se está usando y la amplitud de
la salida rellena de ceros. Si FILENO no está vacío y no contiene un
número, se desactiva la generación de FILENO.
Para dividir un compendio uno normalmente usa:
mail(1), binmail(1), sendmail(8), procmail(1),
sed(1), sh(1), RFC822, RFC1123
Can't fork Demasiados procesos en esta máquina.
Content-Length: field exceeds actual length by nnn bytes El campo de la cabecera
The Content-Length: especifica una longitud superior al cuerpo actual. Esto
hace que este mensaje absorba cierto número de mensajes posteriores del
mismo buzón.
Couldn't write to stdout El programa sobre el que formail trataba de usar la
tubería no aceptó todos los datos que formail le envió; este
diagnóstico se puede suprimir con la opción -q .
Duplicate key found: x Se encontró el Message-ID o remitente x de este
mensaje en idcache; este diagnóstico se puede suprimir con la opción
-q .
Failed to execute "x" El programa no está en la ruta de
ejecutables o no es ejecutable.
File table full Demasiados ficheros abiertos en esta máquina.
Invalid field-name: "x" El nombre de campo "x" especificado
contiene caracteres de control o no puede ser un nombre de campo parcial para
esta opción.
Se puede ahorrar Vd. y a otros muchos dolores de cabeza si intenta evitar esta
posibilidad de autorespuesta en correos que llegan a través de lista de
correo. Dependiendo del formato del correo entrante (que depende por turnos
del agente de correo del remitente y de la configuración de la lista de
correo), formail podría decidir generar una cabecera de autorespuesta que
responda a la lista.
Cuando formail tiene que generar una línea `From' inicial, normalmente
contendrá la fecha actual. Si se ha dado a formail la opción `-a
Date:', usará la fecha del campo `Date:' de la cabecera (si existe). Sin
embargo, como formail lo copia literal , el formato diferirá del esperado
por la mayoría de los lectores de correo.
Si formail está preparado para borrar o renombrar la línea `From '
inicial no la regenerará automáticamente como es normal. Para forzar
a formail para que regenere en este caso incluya -a 'From '.
Si formail no se llama como el primer programa de una tubería y se le dice
que divida la entrada en varios mensajes, formail no terminará hasta que
el programa del que recibe la entrada termine.
Si formail está preparado para generar correo de autorespuesta,
nunca pondrá más de una dirección en el campo `To:'.
Formail procesa los ocho bits.
Cuando formail tiene que determinar la dirección del remitente, se permite
cualquier dirección conforme con RFC822. Formail siempre
pondrá la dirección a su forma mínima (eliminando comentarios
excesivos y espacios en blanco).
La expresión regular que se usa para encontrar un marca de correo `real'
postmarks es:
Llamar a procmail con las opciones -h o -? hará que muestre una página
de ayuda de la línea de comando. Este programa es parte del paquete de
procesamiento de correo procmail (v3.13.1) disponible en
http://www.procmail.org/ o ftp.procmail.org en pub/procmail/. Existe
una lista de correo para cuestiones relativas a cualquier programa del paquete
procmail:
Si tuviera interés en estar informado sobre nuevas versiones y parches oficiales envíe un solicitud de suscripción a
Stephen R. van den Berg
formail +1 -ds >>el_buzón_elegidoo
formail +1 -ds procmailTo remove all Received: fields from the header:
formail -I Received:Para eliminar todos los campos salvo From: y Subject: de la cabecera:
formail -k -X From: -X Subject:Para suplantar el campo Reply-To: de una cabecera podría usar:
formail -i "Reply-To: foo@bar"Para convertir un fichero buzón no estándar en un fichero estándar de buzón puede usar:
formail -ds <old_mailbox >>new_mailboxO, si tiene yn mailer muy tolerante:
formail -a Date: -ds <old_mailbox >>new_mailboxPara extraer la cabecera de un mensaje:
formail -X ""o
sed -e '/^$/ q'Para extraer el cuerpo de un mensaje:
formail -I ""or
sed -e '1,/^$/ d'
"\n\nFrom [\t ]*[^\t\n ]+[\t ]+[^\n\t ]"Si se encuentra un campo Content-Length: en una cabecera, formail copiará el número de bytes especificados en el cuerpo literal antes de reiniciar la búsqueda regular de límites del mensaje (salvo cuando se dividen recopilaciones o se supone un formato de buzón de Berkeley).
<procmail-users@procmail.org> para enviar preguntas/respuestas.<procmail-users-request@procmail.org>
para solicitudes de suscripción.
Si tuviera interés en estar informado sobre nuevas versiones y parches oficiales envíe un solicitud de suscripción a
procmail-announce-request@procmail.org(esta es una lista de sólo lectura).
<srb@cuci.nl>
1999/01/20 | BuGless |