Scroll to navigation

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

Afficher la version du programme et terminer.
Ne pas échapper tout entête incorrect de boîte aux lettres (c’est-à-dire les lignes commençant par « From  »).
Définir un préfixe de citation différent (par défaut « > »).
Assumer un format de boîte aux lettres de style Berkeley traditionnel en ignorant tout champ « Content-Length: ».
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).
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.
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).
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.
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.
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.
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.
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.
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).
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: ».
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.
Faire que formail assume scinder un fichier rmail(1) au format BABYL.
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).
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-.
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 ».
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.
Identique à l’option -x, mais avec préservation/inclusion du nom de champ.
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.
Ajouter un champ_entête personnel dans l’entête dans tous les cas.
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é.
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.
Rendre la première occurrence de ce champ unique, et, par conséquent, toutes les occurrences suivantes sont détruites.
Rendre la dernière occurrence de ce champ unique, et, par conséquent, toutes les occurrences précédentes sont détruites.
Renommer toutes les occurrences de nom de champ ancien_champ en nouveau_champ.
+saut
Sauter les saut premiers messages lors de la scission.
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

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

Processus trop nombreux sur cette machine.
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.
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.
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.
Le programme n’est pas dans la variable PATH ou n’est pas exécutable.
Trop de fichiers ouverts dans cette machine.
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.

<procmail-users-request@procmail.org>
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

(c’est une liste destinée uniquement à la lecture).

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