Procmail · 12 min read · Dec 30, 2025
6.0 Correspondance et regexps (expressions régulières)
Auteur : Jari Aalto.
1.0 Identifiant du document
- 1.1 Généralités
- 1.2 Qu’est-ce que Procmail ?
- 1.3 Abréviations et remerciements
- 1.4 Informations sur la version
- 1.5 Mise en page et maintenance du document
- 1.6 À propos des recettes présentées
- 1.7 Variables utilisées dans les recettes
- 1.8 À propos du “prix pour l’utilisation inutile de cat” 2.0 Pointeurs Procmail
- 2.1 Où Procmail est-il développé
- 2.2 Ressources Procmail
- 2.3 Mode Procmail pour Emacs
- 2.4 Projet de bibliothèque de modules Procmail
- 2.5 Code Procmail pour filtrer UBE 3.0 Test à blanc
- 3.1 Qu’est-ce que le test à blanc ?
- 3.2 Pourquoi le champ From n’est-il pas correct après un test à blanc ?
- 3.3 Obtenir la valeur par défaut d’une variable procmail 4.0 Choses à retenir
- 4.1 Obtenez le dernier procmail
- 4.2 Le tilde de Csh n’est pas supporté
- 4.3 Assurez-vous d’écrire la recette correctement
- 4.4 Toujours définir SHELL
- 4.5 Vérifiez et définissez PATH
- 4.6 Gardez le journal tout le temps
- 4.7 Ne jamais ajouter de barre oblique finale pour les répertoires
- 4.8 Rappelez-vous ce que signifie le terme DELIVERED
- 4.9 Attention à mettre des commentaires aux mauvais endroits
- 4.10 Placement des accolades
- 4.11 Utilisation de fichiers de verrouillage locaux
- 4.12 Fichier de verrouillage global
- 4.13 Eh bien, où puis-je mettre tous ces ! * $ ??
- 4.14 Si vous envoyez une réponse automatique, utilisez l’en-tête X-loop
- 4.15 Évitez une couche de shell supplémentaire et vérifiez la commande pour SHELLMETAS
- 4.16 Pensez aux commandes shell que vous utilisez
- 4.17 Utilisation de chemins absolus lors de l’appel d’un programme shell
- 4.18 Désactiver temporairement une recette
- 4.19 Gardez une sauvegarde des messages, quoi qu’il arrive
- 4.20 Ordre des recettes procmail 5.0 Drapeaux Procmail
- 5.1 L’ordre des drapeaux
- 5.2 Drapeaux HB en haut de la recette (avertissement)
- 5.3 Drapeau w et recette avec |
- 5.4 Drapeau w, fichier de verrouillage et recette avec |
- 5.5 Drapeau f et w ensemble
- 5.6 Drapeaux h et b
- 5.7 Drapeau h et envoi vers /dev/null
- 5.8 Drapeau i et drapeau de tuyau f
- 5.9 Drapeau r
- 5.10 Contexte du drapeau c
- 5.11 Drapeau c avant que le bloc imbriqué ne fork un enfant
- 5.12 Drapeau c et compréhension de la pénalité de fork possible
- 5.13 Drapeaux avant le bloc imbriqué
- 5.14 Tutoriel sur les drapeaux aAeE 6.0 Correspondance et regexps (expressions régulières)
- 6.1 Philosophie de l’abstraction dans les regexps
- 6.2 Les correspondances ne sont pas sensibles à la casse
- 6.3 Procmail utilise des correspondances multi-lignes
- 6.4 Les en-têtes sont dépliés avant la correspondance
- 6.5 Améliorer le syndrome espace-tab
- 6.6 Gestion du caractère d’exclamation
- 6.7 Règles pour générer une classe de caractères
- 6.8 Correspondance d’espace à la fin de la condition
- 6.9 Attention au backslash de tête
- 6.10 Utilisation correcte de la macro TO
- 6.11 Moteur regexp de Procmail
- 6.12 Différences entre Procmail et egrep
- 6.13 Comprendre la correspondance minimale de procmail (économe vs. avide)
- 6.14 Expliquer \/ et ()\/
- 6.15 Expliquer ^^ et ^
- 6.16 ANDing traditionnellement
- 6.17 ORing traditionnellement
- 6.18 ORing et recette de score
- 6.19 ORing en utilisant les règles de De Morgan 7.0 Variables
- 7.1 Définir et annuler des variables
- 7.2 Initialisation des variables et syntaxe sh
- 7.3 Tester des variables
- 7.4 Que signifie $\VAR ?
- 7.5 Pièges courants lors de l’utilisation de variables
- 7.6 Citations : Utilisation de guillemets simples ou doubles
- 7.7 Citations : Passer des valeurs à un programme externe
- 7.8 Passer des valeurs d’un programme externe
- 7.9 Incrémenter une variable par une valeur N
- 7.10 Comparer des valeurs
- 7.11 Chaînes : Combien de caractères y a-t-il dans une chaîne donnée ?
- 7.12 Chaînes : Comment supprimer la nouvelle ligne finale.
- 7.13 Chaînes : dériver les derniers N caractères d’une chaîne.
- 7.14 Chaînes : Obtenir des correspondances partielles d’une chaîne.
- 7.15 Chaînes : Exemple de manipulation de chaînes Procmail
- 7.16 Comment lever un drapeau si le message a été classé
- 7.17 Signe dollar dans les lignes de condition.
- 7.18 Trouver la mystérieuse variable foo
- 7.19 Stocker du code dans une variable
- 7.20 Obtenir des en-têtes dans une variable.
- 7.21 Convertir la valeur en minuscules 8.0 Suggestions et divers
- 8.1 Accélérer procmail
- 8.2 Voir les exemples d’installation de procmail
- 8.3 Imprimer des statistiques de votre courrier entrant
- 8.4 Stocker des boîtes aux lettres UBE en dehors de la quota
- 8.5 Utiliser les 5-30 premières lignes du message
- 8.6 Utiliser cat ou echo dans des scripts ?
- 8.7 Comment exécuter une commande shell supplémentaire comme effet secondaire ?
- 8.8 Forcer le statut de retour “ok” à partir du script shell
- 8.9 Rendez votre propre .procmailrc disponible pour les autres
- 8.10 Utiliser les dates efficacement
- 8.11 Gardez un journal d’en-têtes simple
- 8.12 Gzipping des messages
- 8.13 Arrêt d’urgence pour votre .procmailrc 9.0 Scoring
- 9.1 Utiliser des scores par un exemple
- 9.2 Bref tutoriel sur les scores
- 9.3 Portée des scores
- 9.4 Compter la longueur d’une chaîne
- 9.5 Compter les lignes dans un message (Ajout de lignes : en-tête)
- 9.6 Déterminer si le corps est plus long que l’en-tête
- 9.7 Correspondance du dernier en-tête reçu
- 9.8 Tester la plage de valeurs avec le scoring (bogofilter)
- 9.9 Comment ajouter l’en-tête Content-Length
- 9.10 Tester la taille du message ou le nombre de lignes
- 9.11 Compter les virgules avec includerc récursif 10.0 Utilisation de Formail
- 10.1 Récupérer des champs avec formail -x
- 10.2 Utilisez toujours l’option -rt de formail
- 10.3 Utilisation de -rt et réécriture de l’adresse From
- 10.4 Formail -rt et en-tête Resent-From
- 10.5 Citations du message
- 10.6 Sans citer le message
- 10.7 Comment inclure des en-têtes et le corps dans le message de réponse
- 10.8 Ajouter du texte au début du message
- 10.9 Ajouter du texte à la fin du message
- 10.10 Ajouter du texte avant le message cité
- 10.11 Ajouter des en-têtes supplémentaires à partir d’un fichier
- 10.12 Diviser le digest
- 10.13 Boîte aux lettres : Diviser en fichiers individuels
- 10.14 Boîte aux lettres : Extraire toutes les adresses From de la boîte aux lettres
- 10.15 Boîte aux lettres : Appliquer la recette procmail sur l’ensemble de la boîte aux lettres
- 10.16 Boîte aux lettres : exécuter une série de commandes pour chaque mail (boîte aux lettres divisée)
- 10.17 Option -D et cache
- 10.18 Option -D et message-id dans le corps
- 10.19 Réduire les appels à formail (ajout conditionnel de champs)
- 10.20 Options Formail -A -a
- 10.21 Options Formail -e -s 11.0 Enregistrement des messages de liste de diffusion
- 11.1 Utilisation de la sous-routine pm-jalist.rc pour détecter les listes de diffusion
- 11.2 Utilisation de l’adressage plus [email protected]
- 11.3 Utilisation de la technique de commentaire RFC pour des informations supplémentaires
- 11.4 Gestion simple des listes de diffusion
- 11.5 Archivage selon TO
- 11.6 Utilisation de Return-Path pour détecter les listes de diffusion 12.0 Procmail, MIME et HTML
- 12.1 Bibliographie Mime
- 12.2 Notes Mime
- 12.3 Logiciel pour traiter mime ou HTML
- 12.4 Type de contenu mime application/ms-tnef
- 12.5 Piéger les messages mime HTML
- 12.6 Se plaindre des messages HTML
- 12.7 Convertir le corps HTML en texte brut
- 12.8 Se débarrasser des pièces jointes mime indésirables (HTML, vcard)
- 12.9 Envoyer le contenu d’une page HTML en texte brut à quelqu’un 13.0 Exemples de recettes simples
- 13.1 Enregistrement : dossiers MH – messages numérotés
- 13.2 Enregistrement : dans des dossiers mensuels
- 13.3 Modification : Bases du filtrage
- 13.4 Modification : Écraser les lignes vides autour du corps du message
- 13.5 Modification : mélanger les en-têtes toujours dans le même ordre
- 13.6 Service : Répondeur automatique aux messages vides
- 13.7 Service : Répondeur ping
- 13.8 Service : vacances simples avec procmail
- 13.9 Service : exemple de code de vacances
- 13.10 Service : Transfert automatique
- 13.11 Service : transférer uniquement des messages spécifiques
- 13.12 Service : Création de digests
- 13.13 Kill : tuer les en-têtes et pieds de page publicitaires
- 13.14 Kill : recette simple de kill file avec procmail
- 13.15 Kill : messages en double
- 13.16 Kill : filtre anti-spam avec des recettes simples
- 13.17 Kill : messages (dés)abonnés
- 13.18 Temps : Tâche cron quotidienne
- 13.19 Temps : Exécution d’une recette à un moment donné
- 13.20 Temps : Déclenchement de mail et utilisation de cron
- 13.21 Décodage : Uudecode
- 13.22 Décodage : MIME
- 13.23 Comment envoyer des commandes dans le corps du message
- 13.24 Correspondance de deux mots sur une ligne, mais pas un
- 13.25 Comment définir des macros personnelles XX ?
- 13.26 Comment changer le sujet par correspondance dans le corps
- 13.27 Comment changer le sujet selon un autre en-tête
- 13.28 Comment appeler un programme avec des paramètres 14.0 Recettes diverses
- 14.1 Correspondance d’en-tête Message-Id valide
- 14.2 Envoyer deux fichiers dans un message
- 14.3 Citation excessive du message
- 14.4 Envoyer un message au pager par morceaux
- 14.5 Jouer un son particulier lorsque le message arrive
- 14.6 Combiner plusieurs en-têtes Original-Cc et Original-To
- 14.7 Transférer des messages sensibles au format crypté 15.0 Procmail et PGP
- 15.1 Déchiffrer automatiquement les messages pgp
- 15.2 Obtenir des clés à partir du serveur de clés
- 15.3 Récupération automatique des clés pgp entrantes 16.0 Utilisation d’Includerc
- 16.1 Utilisation : plusieurs fichiers rc
- 16.2 Utilisation : appel de fichier rc conditionnellement
- 16.3 Utilisation : chargement automatique d’un fichier rc
- 16.4 Création : nommage du fichier rc
- 16.5 Création : utilisation de l’espace de noms lors de l’enregistrement des variables procmail
- 16.6 Création : Variables publiques et privées dans le fichier rc
- 16.7 Règles de base pour construire un fichier rc polyvalent
- 16.8 Un squelette d’includerc 17.0 Serveur de liste de diffusion 18.0 Problèmes courants
- 18.1 Modes Procmail : normal, livraison et filtre de mail.
- 18.2 Procmail en tant que dispositif de filtrage de mail Mlocal
- 18.3 Procmail ne passe pas les caractères 8 bits
- 18.4 Mon FAI n’est pas très intéressé à installer procmail
- 18.5 Mon FAI a un procmailrc système ; est-ce une bonne idée ?
- 18.6 Procmail change les permissions de la boîte aux lettres et du répertoire
- 18.7 Changer la permission mbox lors de la compilation à 660
- 18.8 Le fichier .forward doit être un vrai fichier
- 18.9 Utiliser .forward si procmail est déjà LDA
- 18.10 Le mail doit être mis dans la file d’attente si l’écriture échoue
- 18.11 Qmail : comment le faire fonctionner avec procmail
- 18.12 Qmail : Procmail ne regarde le fichier que depuis /var/spool/mail uniquement
- 18.13 Qmail : patch pour procmail 3.11pre7 pour fonctionner avec Maildirs
- 18.14 AFS : Comment utiliser Procmail lorsque HOME est dans une cellule AFS
- 18.15 Aidez-moi, un idiot a envoyé mon adresse à 30 listes de diffusion
- 18.16 Aidez-moi, Procmail bip et imprime sur ma console
- 18.17 Aidez-moi, procmail déverse le mail sur la console
- 18.18 Aidez-moi, ligne From_ corrompue dans la boîte aux lettres
- 18.19 Diriger le mail de l’utilisateur vers HOME au lieu de /var/spool/
- 18.20 Monter NFS /var/mail est un bon moyen d’obtenir de mauvaises performances
- 18.21 Je ne peux pas voir la réponse de sendmail dans LOGFILE
- 18.22 Compiler procmail et choisir un schéma de verrouillage
- 18.23 Le transfert d’un lot de mails entraîne une lourde charge
- 18.24 Que se passe-t-il avec le mail si MDA Procmail échoue
- 18.25 Procmail lit l’intégralité du message de 90 Mo en mémoire
- 18.26 Aidez-moi, procmail utilise parfois une énorme quantité de mémoire
- 18.27 Procmail a signalé un manque de mémoire dans mon journal détaillé
- 18.28 Variables DEFAULT et ORGMAIL
- 18.29 Lorsque DEFAULT ne peut pas être envoyé
- 18.30 Variable DROPPRIVS
- 18.31 Variable HOME
- 18.32 Variable HOST
- 18.33 Variable LINEBUF
- 18.34 Variable LOG et LOGFILE
- 18.35 Variable TRAP
- 18.36 Variable UMASK
- 18.37 UMASK et permissions
- 18.38 Différence de performance entre backtick et “|” recette
- 18.39 Noms de fichiers temporaires de Procmail lors de l’écriture du fichier
- 18.40 Paramètre $@
- 18.41 Les variables Procmail sont terminées par un null (détection de chaîne nulle)
- 18.42 FROMDAEMON TO et TO et sensibilité à la casse
- 18.43 Macro TO_ déchiffrée
- 18.44 Macro TO_ et RFC 822
- 18.45 FROM_DAEMON déchiffré 19.0 Questions techniques
- 19.1 Liste des codes de sortie
- 19.2 Liste des codes de priorité
- 19.3 Sendmail et -t
- 19.4 RFC822 Reply-To et problème formail avec plusieurs destinataires
- 19.5 Procmail et serveur IMAP
- 19.6 Machine qui traite le mail
- 19.7 Compiler procmail et MAILSPOOLHOME 20.0 Logiciel Procmail pour Emacs
- 20.1 Qu’est-ce qu’Emacs
- 20.2 Mode procmail Emacs et vérification du code Procmail (Lint)
- 20.3 Pourquoi utiliser procmail avec Gnus
- 20.4 Configuration de Gnus pour procmail - Bases
- 20.5 Gnus pour procmail - Plus d’informations à ce sujet
- 20.6 Emacs et Gnus – Manipulation des fichiers spool
- 20.7 Extraits d’articles Gnus 21.0 RFC, Demande de commentaires
- 21.1 RFC et leur juridiction (adresses modifiées)
- 21.2 Commentaires sur la modification des adresses
- 21.3 RFC et caractères d’adresse e-mail valides
- 21.4 RFC et login-name@fdqn
- 21.5 RFC et signature des messages
- 21.6 RFC et utilisation de MIME dans les groupes de discussion Usenet
- 21.7 Quelques pointeurs RFC 22.0 Introduction aux en-têtes de courrier électronique
- 22.1 Pour en savoir plus sur le courrier (Ressources)
- 22.2 Conférence par Alan Stebbens
- 22.3 Appliqué aux messages reçus
- 22.4 En-têtes de message
- 22.5 Qu’est-ce que la syntaxe correcte de l’adresse From
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.