| FORMAIL(1) | General Commands Manual | FORMAIL(1) |
NOM¶
formail – (re)formatage de courriel
SYNOPSIS¶
formail [+saut] [-total]
[-bczfrktedqBY] [-p préfixe] [-D
max_long cache_idts] [-l répertoire] [-x
champ_entête] [-X champ_entête]
[-a champ_entête] [-A
champ_entête] [-i champ_entête]
[-I champ_entête] [-u
champ_entête] [-U champ_entête]
[-R ancien_champ nouveau_champ] [-n
[max_procs ]] [-m min_champs] [-s
[commande [arg ...]]]
formail -v
DESCRIPTION¶
formail est un filtre permettant de convertir les courriels au format de boîte aux lettres, d’effectuer l’échappement de la ligne « From », de générer des entêtes de réponse automatique, d’effectuer des opérations simples de modification ou d’extraction d’en-têtes, ou encore de scinder un fichier de boîte aux lettres, de condensé (digest) ou d’articles. Le contenu des courriels, des boîtes aux lettres ou des articles doit être fourni sur l’entrée standard.
Si formail est censé déterminer l’expéditeur du courriel, mais ne peut pas le trouver, il substitue « foo@bar ».
Si formail est démarré sans aucune option de
ligne de commande, il transforme tout courriel issu de
l’entrée standard au format de boîte aux lettres et
échappe toutes les lignes incorrectes « From
» avec « > ».
OPTIONS¶
- -v
- Afficher la version du programme et terminer.
- -b
- Ne pas échapper tout entête incorrect de boîte aux
lettres (c’est-à-dire les lignes commençant par
« From »).
- -P préfixe
- Définir un préfixe de citation différent (par
défaut « > »).
- -Y
- Assumer un format de boîte aux lettres de style Berkeley
traditionnel en ignorant tout champ
« Content-Length: ».
- -c
- Concaténer les champs coupés en fin de ligne dans
l'entête. Cette option s’avère utile pour le
post-traitement des courriels avec des utilitaires texte standard
(orientés ligne).
- -z
- Veiller à ce qu'il y ait un espace blanc entre le nom du champ et
son contenu. Supprimer les champs qui ne contiennent qu'un espace blanc.
Supprimer les espaces blancs en début et en fin des champs extraits
avec l’option -x.
- -f
- Forcer formail à simplement transmettre tout format non
conforme à celui d’une boîte aux lettres
(c’est-à-dire ne pas générer une ligne
« From » comme première ligne).
- -r
- Générer un entête de réponse automatique. Cela
rejettera normalement tous les champs (excepté
« X-Loop: ») du message original ; les
champs à préserver doivent être indiqués en
utilisant l’option -i. Pour utiliser cette option avec
l’option -k, l’échappement du corps peut
être empêché en spécifiant
l’option -b.
- -k
- Lors de la génération de l’entête de
réponse automatique ou lors de l’extraction des champs,
cette option conserve aussi le corps.
- -t
- Partir du principe que l’expéditeur a utilisé une
adresse valable pour cet entête. Cela fait que formail
choisit l’entête expéditeur au lieu de
l’entête d’enveloppe pour la réponse.
Cette option est à utiliser lors de la génération
d’entêtes de réponse automatique pour de nouveaux
articles ou lorsque l’expéditeur désire une
réponse.
- -s
- La saisie est scindée en messages de courriel
séparés, et ceux-ci dirigés vers un programme un
à un (un nouveau programme est démarré pour chaque
message). L’option -s doit être la dernière
spécifiée, le premier argument qui suit est le nom
d’un programme, tout autre argument lui sera transmis. Si le
programme est omis, formail concaténera simplement de
nouveau les messages scindés sur la sortie standard. Consulter
ci-après FILENO.
- -n [max_procs]
- Indiquer à formail de ne pas attendre que chaque programme
ait terminé avant de démarrer le suivant (traitement des
messages scindés en parallèle). Facultativement,
max_procs spécifie une limite supérieure du nombre de
processus exécutés en même temps.
- -e
- Ne pas exiger que des lignes vides précèdent
l’entête d’un nouveau message
(c’est-à-dire que les messages peuvent débuter sur
toutes les lignes).
- -d
- Indiquer à formail que les messages qu’il est
supposé scinder n’ont pas besoin d’être dans
le format strict de boîte aux lettres (c’est-à-dire
permettre de scinder les condensés/articles ou les formats de
boîte aux lettres non standard). Cela désactive la
reconnaissance du champ « Content-Length: ».
- -l répertoire
- Générer un résumé des journaux dans le
même style que procmail(1). Cela inclut la ligne
entière « From », le champ
d’entête « Subject: », le
répertoire et la taille des messages en octets. La commande
mailstat(1) peut être utilisée pour résumer
les journaux dans ce format.
- -B
- Faire que formail assume scinder un fichier rmail(1) au
format BABYL.
- -m min_champs
- Permettre de spécifier le nombre de champs d’entête
consécutifs dont formail a besoin avant qu’il
décide qu’il a rencontré le début d’un
nouveau message (par défaut 2).
- -q
- Indiquer à formail de ne pas signaler (tout en les
détectant) les erreurs d’écriture, les messages en
double et les champs « Content-Length: » non
correspondants. Cette option est activée par défaut ;
pour afficher les messages, utiliser l’option -q-.
- -D max_long cache_idts
- formail détecte si le
« Message-ID » du message actuel a
déjà été vu en utilisant un fichier
cache_idts de taille approximativement max_long. Si aucune
scission n’est faite, un
« succès » est renvoyé si un
doublon est trouvé. En cas de scission, les doublons ne seront pas
extraits. Si cette option est utilisée avec l’option
-r, formail recherche l’adresse de courriel de
l’enveloppe d’envoi au lieu du
« Message-ID ».
- -x champ_entête
- Extraire le contenu du champ_entête de
l’entête. Les continuations de ligne seront laissées
intactes. Pour obtenir la valeur d’une seule ligne, l’option
-c est aussi nécessaire.
- -X champ_entête
- Identique à l’option -x, mais avec
préservation/inclusion du nom de champ.
- -a champ_entête
- Ajouter un champ_entête personnel à
l’entête, mais seulement si un champ similaire
n’existe pas déjà. Si un des noms de champ
« Message-ID: » ou
« Resent-Message-ID: » est
spécifié sans contenu de champ, formail
génère un « Message-ID » unique
pour vous.
- -A champ_entête
- Ajouter un champ_entête personnel dans
l’entête dans tous les cas.
- -i champ_entête
- Identique à l’option -A, excepté que tout
champ similaire existant est renommé en ajoutant le préfixe
« Old- ». Si champ_entête se
compose uniquement d’un nom de champ, ce préfixe ne sera pas
ajouté.
- -I champ_entête
- Identique à l’option -i, excepté que tout
champ similaire existant est supprimé. Si
champ_entête se compose uniquement d’un nom de champ,
cette option supprime effectivement le champ.
- -u champ_entête
- Rendre la première occurrence de ce champ unique, et, par
conséquent, toutes les occurrences suivantes sont détruites.
- -U champ_entête
- Rendre la dernière occurrence de ce champ unique, et, par
conséquent, toutes les occurrences précédentes sont
détruites.
- -R ancien_champ nouveau_champ
- Renommer toutes les occurrences de nom de champ ancien_champ en
nouveau_champ.
- +saut
- Sauter les saut premiers messages lors de la scission.
- -total
- Produire au plus total messages lors de la scission.
NOTES¶
Lors d’un renommage, d’une suppression ou d’une extraction de champs, des noms de fichier partiels peuvent être utilisés pour spécifier tous les champs commençant par la valeur indiquée.
Par défaut, lors de la génération d’un entête de réponse automatique, formail sélectionne l’expéditeur de l’enveloppe à partir du message d'entrée. Cela est correct pour les messages d’absence et autres réponses automatiques concernant l’acheminement ou la remise du message d’origine. Si l’expéditeur attend une réponse ou si la réponse est générée en fonction du contenu du message d’origine, il convient alors d’utiliser l’option -t.
La norme RFC 822 originale gouvernant les messages de courriel, ne spécifie pas si les champs d’entête « Resent » (ceux commençant par « Resent- », tels que « Resent-From: ») doivent être pris en compte lors de la génération d’une réponse. Depuis lors, l’utilisation recommandée des entêtes « Resent » a évolué pour les considérer comme purement informationnels et non pour une utilisation lors de la génération d’une réponse. Cela a été codifié dans la RFC 2822 du nouveau format de message qui stipule notamment :
- Les champs « Resent » sont utilisés pour indiquer qu’un message a été réintroduit dans le système de transport par un utilisateur. Le but d’utilisation des champs « Resent » est que le message apparaisse au destinataire final comme s’il avait été directement envoyé par l’expéditeur d’origine, avec tous les autres champs demeurant identiques.... Ils NE DOIVENT PAS être utilisés dans le processus normal de réponse ou dans de telles actions automatiques sur les messages.
Bien que formail ignore désormais les entêtes
« Resent » lors de la génération
d’entête de réponse, les versions de formail
avant la version 3.14 donnent à de tels entêtes une
haute priorité. Si l’ancien comportement est nécessaire
pour des applications existantes, il peut être spécifié
en appelant formail avec l’option -a Resent- en
plus des options -r et -t. Cette utilisation est
obsolète et ne doit pas être employée dans les
nouvelles applications.
ENVIRONNEMENT¶
- FILENO
- Lors de la scission, formail assigne le nombre de messages
actuellement produits à cette variable. En
prédéfinissant FILENO, le nombre initial de messages
utilisés et la largeur de la sortie (remplie par des zéros)
peuvent être modifiés. Si FILENO n’est pas
définie, sa valeur par défaut est 000. Si
FILENO n’est pas vide et ne contient pas de nombre, elle
n’est pas générée.
EXEMPLES¶
Pour scinder un condensé, on utilise généralement :
formail +1 -ds >>votre_boîte_aux_lettres
ou
formail +1 -ds procmail
Pour supprimer tous les champs « Received: » de l’entête :
formail -I Received:
Pour supprimer tous les champs sauf « From: » et « Subject: » de l’entête :
formail -k -X From: -X Subject:
Pour remplacer le champ « Reply-To: » dans l’entête :
formail -i "Reply-To: foo@bar"
Pour convertir un fichier de boîte aux lettres non standard en un fichier de boîte aux lettres standard :
formail -ds <ancienne_boîte >>nouvelle_boîte
ou en présence d’un courrielleur très tolérant :
formail -a Date: -ds <ancienne_boite >>nouvelle_boite
Pour extraire l’entête d’un message :
formail -X ""
ou
sed -e '/^$/ q'
Pour extraire le corps d’un message :
formail -I ""
ou
sed -e '1,/^$/ d'
VOIR AUSSI¶
mail(1), sendmail(8), procmail(1), sed(1), sh(1), RFC822, RFC2822, RFC1123
DIAGNOSTICS¶
- Can't fork
- Processus trop nombreux sur cette machine.
- Content-Length: field exceeds actual length by nnn bytes
- Le champ « Content-Length: » dans
l’entête a spécifié une longueur
supérieure à celle réelle du corps. Cela fait que ce
message absorbe un certain nombre des messages suivant dans la même
boîte aux lettres.
- Couldn't write to stdout
- Le programme vers lequel formail essaie de rediriger
n’accepte pas toutes les données qu’il lui envoie. Ce
diagnostic peut être supprimé avec
l’option -q.
- Duplicate key found: x
- Le « Message-ID » ou
l’expéditeur x dans ce message a été
trouvé dans le cache des identifiants. Ce diagnostic peut
être supprimé avec l’option -q.
- Failed to execute "x"
- Le programme n’est pas dans la variable PATH ou n’est
pas exécutable.
- File table full
- Trop de fichiers ouverts dans cette machine.
- Invalid field-name: "x"
- Le nom de champ spécifié « x »
contient des caractères de contrôle ou ne peut être
un nom partiel de fichier pour cette option.
AVERTISSEMENTS¶
Vous pouvez vous épargner bien des tracas, ainsi qu’aux autres, en évitant d’utiliser cette fonctionnalité de réponse automatique pour les courriels provenant de listes de diffusion. En fonction du format du courriel reçu (qui dépend à la fois du client de messagerie de l’expéditeur d’origine et de la configuration de la liste de diffusion), formail pourrait décider de générer un entête de réponse automatique à la liste.
Dans la tradition des utilitaires d’UN*X, formail
fait exactement ce qui lui est demandé, même si cela aboutit
à un message non conforme à la norme RFC 822. En
particulier, formail permet de générer des champs
d’entête dont le nom se termine par un espace blanc au lieu
d’un deux-points. Bien que cela soit correct pour la ligne
« From » en début de message, cette
ligne n’est pas tant un champ d’entête qu’un
séparateur de messages pour le format de boîte aux lettres
mbox(5). Plusieurs occurrences d’une telle ligne ou de tout
autre champ d’entête sans deux-points seront
considérées par de nombreux programmes de messagerie, y
compris formail lui-même, comme le début d’un
nouveau message. D’autres considéreront le message comme
corrompu. Pour cette raison, vous ne devez pas utiliser
l’option -i avec la ligne « From
», car la ligne renommée qui en résultera,
« Old-From », ne fonctionnera probablement pas
comme vous le souhaitez. Si vous souhaitez conserver la ligne
« From » d’origine, renommez-la à
l’aide de l’option -R en un champ
d’entête valable tel que
« X-From_: ».
BOGUES¶
Lorsque formail doit générer une première ligne « From », celle-ci contient généralement la date du jour. Si l’option -a Date: est fournie à formail, celui-ci utilisera la date figurant dans le champ « Date: » de l’entête (s’il est présent). Cependant, comme formail la copie telle quelle, le format sera différent de celui attendu par la plupart des clients de messagerie.
S’il est demandé à formail de supprimer ou de renommer la première ligne « From », il ne la régénère pas automatiquement comme d’habitude. Dans ce cas, pour obliger formail à la régénérer, il faut inclure -a 'From '.
Si formail n’est pas appelé en premier dans un pipeline et qu’il lui est demandé de scinder l’entrée en plusieurs messages, il ne s’arrêtera pas tant que le programme qui lui transmet l’entrée n’aura pas fermé sa sortie ou ne se sera pas arrêté lui-même.
S’il est demandé à formail de
générer un courriel de réponse automatique, il ne
mettra jamais plus d’une adresse dans le champ
« To: ».
DIVERS¶
formail est compatible 8 bits.
Lorsque formail détermine l’adresse de l’expéditeur, toute adresse de courriel compatible avec la RFC 822 est autorisée. formail réduit toujours l’adresse à sa forme minimale (suppression de tous les commentaires excessifs et des espaces blancs).
L’expression rationnelle utilisée pour trouver les cachets postaux « réels » est :
"\n\nFrom [\t ]*[^\t\n ]+[\t ]+[^\n\t ]"
Si un champ « Content-Length: » est trouvé dans un entête, formail copie tel quel le nombre d’octets spécifiés dans le corps avant de reprendre l’analyse normale des limites de message (excepté lors de la scission des condensés ou lorsque le format Berkeley de boîte aux lettres est assumé).
Toute ligne d’entête suivant immédiatement la
ligne « From » de début qui commence par
« >From » est considérée comme
une continuation de la première ligne. S’il est demandé
à formail de renommer la ligne « From
», il changera chaque « > » de
début de ligne en une espace, en transformant par conséquent
ces lignes en continuations normales de la RFC 822.
NOTES¶
Appeler formail avec les options -h ou -? conduit à l’affichage d’une page d’aide à propos de la ligne de commande.
SOURCE¶
Ce programme fait partie de mail-processing-package de procmail (v.3.23pre) disponible sur http://www.procmail.org/ ou ftp.procmail.org dans pub/procmail/.
MAILINGLIST¶
Il existe une liste de diffusion pour les questions relatives à tout programme du paquet procmail(1) :
<procmail-users@procmail.org>
pour soumettre des questions ou des réponses.
pour les requêtes d’abonnement.
Pour se tenir au courant des nouvelles versions ou des correctifs, envoyer une
demande d’abonnement à
procmail-announce-request@procmail.org
AUTEURS¶
Stephen R. van den Berg
<srb@cuci.nl>
Philip A. Guenther
<guenther@sendmail.com>
TRADUCTION¶
La traduction française de cette page de manuel a été créée par Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.
| 2001/08/04 | BuGless |