Procmail e regex · 11 min read · Dec 30, 2025

6.0 Corrispondenza e regexps (espressioni regolari)

Autore: Jari Aalto.

1.0 ID documento

  • 1.1 Generale
  • 1.2 Cos’è Procmail?
  • 1.3 Abbreviazioni e ringraziamenti
  • 1.4 Informazioni sulla versione
  • 1.5 Layout e manutenzione del documento
  • 1.6 Informazioni sulle ricette presentate
  • 1.7 Variabili utilizzate nelle ricette
  • 1.8 Informazioni sul “premio per l’uso inutile di cat” 2.0 Riferimenti Procmail
  • 2.1 Dove viene sviluppato procmail
  • 2.2 Risorse Procmail
  • 2.3 Modalità Procmail per Emacs
  • 2.4 Procmail modulo libreria progetto
  • 2.5 Codice Procmail per filtrare UBE 3.0 Test di esecuzione a secco
  • 3.1 Cos’è il test di esecuzione a secco?
  • 3.2 Perché il campo Da non è corretto dopo l’esecuzione a secco?
  • 3.3 Ottenere il valore predefinito di una variabile procmail 4.0 Cose da ricordare
  • 4.1 Ottenere il procmail più recente
  • 4.2 Il tilde di Csh non è supportato
  • 4.3 Assicurati di scrivere la ricetta iniziando correttamente
  • 4.4 Imposta sempre SHELL
  • 4.5 Controlla e imposta PATH
  • 4.6 Mantieni il log sempre attivo
  • 4.7 Non aggiungere mai una barra finale per le directory
  • 4.8 Ricorda cosa significa il termine CONSEGNATO
  • 4.9 Fai attenzione a mettere commenti nei posti sbagliati
  • 4.10 Posizionamento delle parentesi graffe
  • 4.11 Utilizzo del file di blocco locale
  • 4.12 File di blocco globale
  • 4.13 Cavolo, dove metto tutti quei ! * $ ??
  • 4.14 Se invii una risposta automatica, usa l’intestazione X-loop
  • 4.15 Evita un ulteriore strato di shell e controlla il comando per SHELLMETAS
  • 4.16 Pensa a quali comandi shell utilizzi
  • 4.17 Utilizzo di percorsi assoluti quando chiami un programma shell
  • 4.18 Disabilitare temporaneamente una ricetta
  • 4.19 Mantieni il backup dei messaggi, non importa cosa
  • 4.20 Ordine delle ricette procmail 5.0 Flag Procmail
  • 5.1 L’ordine dei flag
  • 5.2 Flag HB in cima alla ricetta (avviso)
  • 5.3 Flag w e ricetta con |
  • 5.4 Flag w, file di blocco e ricetta con |
  • 5.5 Flag f e w insieme
  • 5.6 Flag h e b
  • 5.7 Flag h e affondare in /dev/null
  • 5.8 Flag i e pipe flag f
  • 5.9 Flag r
  • 5.10 Sfondo del flag c
  • 5.11 Flag c prima che il blocco annidato fork un figlio
  • 5.12 Flag c e comprensione della possibile penalità di fork
  • 5.13 Flag prima del blocco annidato
  • 5.14 Tutorial sui flag aAeE 6.0 Corrispondenza e regexps (espressioni regolari)
  • 6.1 Filosofia dell’astrazione nelle regexps
  • 6.2 Le corrispondenze non sono sensibili al maiuscolo
  • 6.3 Procmail utilizza corrispondenze su più righe
  • 6.4 Le intestazioni vengono srotolate prima della corrispondenza
  • 6.5 Migliorare la sindrome spazio-tab
  • 6.6 Gestire il carattere di esclamazione
  • 6.7 Regole per generare una classe di caratteri
  • 6.8 Corrispondenza dello spazio alla fine della condizione
  • 6.9 Fai attenzione al backslash iniziale
  • 6.10 Uso corretto del macro TO
  • 6.11 Motore regexp di Procmail
  • 6.12 Differenze tra Procmail e egrep
  • 6.13 Comprendere la corrispondenza minima di procmail (avaro vs. avido)
  • 6.14 Spiegare \/ e ()\/
  • 6.15 Spiegare ^^ e ^
  • 6.16 AND tradizionalmente
  • 6.17 OR tradizionalmente
  • 6.18 OR e ricetta di punteggio
  • 6.19 OR utilizzando le regole di De Morgan 7.0 Variabili
  • 7.1 Impostazione e disattivazione delle variabili
  • 7.2 Inizializzazione delle variabili e sintassi sh
  • 7.3 Testare le variabili
  • 7.4 Cosa significa $\VAR?
  • 7.5 Errori comuni nell’uso delle variabili
  • 7.6 Citazione: utilizzo di virgolette singole o doppie
  • 7.7 Citazione: passaggio di valori a un programma esterno
  • 7.8 Passaggio di valori da un programma esterno
  • 7.9 Incrementare una variabile di un valore N
  • 7.10 Confrontare valori
  • 7.11 Stringhe: quanti caratteri ci sono in una data stringa?
  • 7.12 Stringhe: come rimuovere la nuova riga finale.
  • 7.13 Stringhe: derivare gli ultimi N caratteri di una stringa.
  • 7.14 Stringhe: ottenere corrispondenze parziali da una stringa.
  • 7.15 Stringhe: esempio di manipolazione delle stringhe Procmail
  • 7.16 Come sollevare un flag se il messaggio è stato archiviato
  • 7.17 Segno del dollaro nelle righe di condizione.
  • 7.18 Trovare la misteriosa variabile foo
  • 7.19 Memorizzare codice in una variabile
  • 7.20 Ottenere intestazioni in una variabile.
  • 7.21 Convertire il valore in minuscolo 8.0 Suggerimenti e vari
  • 8.1 Accelerare procmail
  • 8.2 Vedi gli esempi di installazione di procmail
  • 8.3 Stampa statistiche della tua posta in arrivo
  • 8.4 Memorizzazione delle caselle di posta UBE al di fuori della quota
  • 8.5 Utilizzo delle prime 5-30 righe dal messaggio
  • 8.6 Utilizzo di cat o echo negli script?
  • 8.7 Come eseguire un comando shell extra come effetto collaterale?
  • 8.8 Forzare lo stato di ritorno “ok” dallo script shell
  • 8.9 Rendi il tuo .procmailrc disponibile ad altri
  • 8.10 Utilizzo efficiente delle date
  • 8.11 Mantieni un log di intestazione semplice
  • 8.12 Gzipping dei messaggi
  • 8.13 Arresto di emergenza per il tuo .procmailrc 9.0 Punteggio
  • 9.1 Utilizzo dei punteggi tramite un esempio
  • 9.2 Breve tutorial sul punteggio
  • 9.3 Ambito del punteggio
  • 9.4 Conteggio della lunghezza di una stringa
  • 9.5 Conteggio delle righe in un messaggio (Aggiunta di righe: intestazione)
  • 9.6 Determinare se il corpo è più lungo dell’intestazione
  • 9.7 Corrispondenza dell’ultima intestazione ricevuta
  • 9.8 Testare l’intervallo di valori con punteggio (bogofilter)
  • 9.9 Come aggiungere l’intestazione Content-Length
  • 9.10 Testare la dimensione del messaggio o il numero di righe
  • 9.11 Conteggio delle virgole con includerc ricorsivo 10.0 Utilizzo di Formail
  • 10.1 Recupero dei campi con formail -x
  • 10.2 Utilizzare sempre l’opzione -rt di formail
  • 10.3 Utilizzo di -rt e riscrittura dell’indirizzo Da
  • 10.4 Formail -rt e intestazione Resent-From
  • 10.5 Citazione del messaggio
  • 10.6 Senza citare il messaggio
  • 10.7 Come includere intestazioni e corpo nel messaggio di risposta
  • 10.8 Aggiungere testo all’inizio del messaggio
  • 10.9 Aggiungere testo alla fine del messaggio
  • 10.10 Aggiungere testo prima del messaggio citato
  • 10.11 Aggiungere intestazioni extra da un file
  • 10.12 Divisione del digest
  • 10.13 Casella di posta: divisione in file individuali
  • 10.14 Casella di posta: estrazione di tutti gli indirizzi Da dalla casella di posta
  • 10.15 Casella di posta: applicare la ricetta procmail all’intera casella di posta
  • 10.16 Casella di posta: eseguire una serie di comandi per ogni posta (dividi la casella di posta)
  • 10.17 Opzione -D e cache
  • 10.18 Opzione -D e message-id nel corpo
  • 10.19 Ridurre le chiamate a formail (aggiunta condizionale di campi)
  • 10.20 Opzioni Formail -A -a
  • 10.21 Opzioni Formail -e -s 11.0 Salvataggio dei messaggi della mailing list
  • 11.1 Utilizzo della subroutine pm-jalist.rc per rilevare le mailing list
  • 11.2 Utilizzo dell’indirizzamento plus [email protected]
  • 11.3 Utilizzo del trucco di commento RFC per informazioni aggiuntive
  • 11.4 Gestione semplice delle mailing list
  • 11.5 Archiviazione in base a TO
  • 11.6 Utilizzo del Return-Path per rilevare le mailing list 12.0 Procmail, MIME e HTML
  • 12.1 Bibliografia Mime
  • 12.2 Note Mime
  • 12.3 Software per gestire mime o HTML
  • 12.4 Tipo di contenuto Mime application/ms-tnef
  • 12.5 Intrappolamento dei messaggi mime HTML
  • 12.6 Lamentarsi dei messaggi HTML
  • 12.7 Conversione del corpo HTML in testo semplice
  • 12.8 Sbarazzarsi degli allegati mime indesiderati (HTML, vcard)
  • 12.9 Inviare i contenuti di una pagina HTML in testo semplice a qualcuno 13.0 Esempi di ricette semplici
  • 13.1 Salvataggio: cartelle MH – messaggi numerati
  • 13.2 Salvataggio: in cartelle mensili
  • 13.3 Modifica: Filtraggio di base
  • 13.4 Modifica: Compressione delle righe vuote attorno al corpo del messaggio
  • 13.5 Modifica: mescolare le intestazioni sempre nello stesso ordine
  • 13.6 Servizio: Risponditore automatico a messaggi vuoti
  • 13.7 Servizio: Risponditore ping
  • 13.8 Servizio: semplice vacanza con procmail
  • 13.9 Servizio: esempio di codice per le vacanze
  • 13.10 Servizio: inoltro automatico
  • 13.11 Servizio: inoltrare solo messaggi specifici
  • 13.12 Servizio: Creazione di digest
  • 13.13 Uccidi: uccidere intestazioni e piè di pagina pubblicitari
  • 13.14 Uccidi: ricetta semplice per il file di uccisione con procmail
  • 13.15 Uccidi: messaggi duplicati
  • 13.16 Uccidi: filtro spam con ricette semplici
  • 13.17 Uccidi: messaggi (dis)iscritti
  • 13.18 Tempo: lavoro cron-like una volta al giorno
  • 13.19 Tempo: Eseguire una ricetta a un’ora prestabilita
  • 13.20 Tempo: Attivare la posta e utilizzare cron
  • 13.21 Decodifica: Uudecode
  • 13.22 Decodifica: MIME
  • 13.23 Come inviare comandi nel corpo del messaggio
  • 13.24 Corrispondenza di due parole su una riga, ma non una
  • 13.25 Come definire macro personali XX?
  • 13.26 Come cambiare il soggetto in base alla corrispondenza del corpo
  • 13.27 Come cambiare il soggetto in base a un’altra intestazione
  • 13.28 Come chiamare un programma con parametri 14.0 Ricette varie
  • 14.1 Corrispondenza di intestazione Message-Id valida
  • 14.2 Inviare due file in un messaggio
  • 14.3 Citazione eccessiva del messaggio
  • 14.4 Inviare messaggi al pager in blocchi
  • 14.5 Riprodurre un suono particolare quando arriva un messaggio
  • 14.6 Combinare più intestazioni Original-Cc e Original-To
  • 14.7 Inoltrare messaggi sensibili in formato crittografato 15.0 Procmail e PGP
  • 15.1 Decrittare automaticamente i messaggi pgp
  • 15.2 Ottenere chiavi dal server di chiavi
  • 15.3 Acquisire automaticamente le chiavi pgp in arrivo 16.0 Utilizzo di Includerc
  • 16.1 Utilizzo: più file rc
  • 16.2 Utilizzo: chiamare il file rc condizionatamente
  • 16.3 Utilizzo: caricamento automatico di un file rc
  • 16.4 Creazione: denominazione del file rc
  • 16.5 Creazione: utilizzo dello spazio dei nomi quando si salvano le variabili procmail
  • 16.6 Creazione: variabili pubbliche e private nel file rc
  • 16.7 Le regole pratiche per costruire file rc generali
  • 16.8 Uno scheletro di includerc 17.0 Server di mailing list 18.0 Problemi comuni
  • 18.1 Modalità Procmail: normale, consegna e filtro di posta.
  • 18.2 Procmail come dispositivo di filtraggio della posta Mlocal di sendmail
  • 18.3 Procmail non passa caratteri a 8 bit
  • 18.4 Il mio ISP non è molto interessato a installare procmail
  • 18.5 Il mio ISP ha procmailrc a livello di sistema; è una buona idea?
  • 18.6 Procmail cambia le autorizzazioni della casella di posta e della directory
  • 18.7 Cambiare le autorizzazioni della mbox durante la compilazione a 660
  • 18.8 Il file .forward deve essere un file reale
  • 18.9 Utilizzo di .forward se procmail è già LDA
  • 18.10 La posta deve essere messa nella coda della posta se la scrittura fallisce
  • 18.11 Qmail: come farlo funzionare con procmail
  • 18.12 Qmail: Procmail guarda il file solo da /var/spool/mail
  • 18.13 Qmail: patch a procmail 3.11pre7 per funzionare con Maildirs
  • 18.14 AFS: come utilizzare Procmail quando HOME è in cella AFS
  • 18.15 Aiuto, qualche idiota ha inviato il mio indirizzo a 30 mailing list
  • 18.16 Aiuto, Procmail emette un segnale e stampa sulla mia console
  • 18.17 Aiuto, procmail scarica la posta sulla console
  • 18.18 Aiuto, riga From_ corrotta nella casella di posta
  • 18.19 Dire la posta dell’utente a HOME invece di /var/spool/
  • 18.20 Il montaggio NFS di /var/mail è un buon modo per ottenere prestazioni scadenti
  • 18.21 Non riesco a vedere la risposta di sendmail in LOGFILE
  • 18.22 Compilazione di procmail e scelta dello schema di blocco
  • 18.23 L’inoltro di molta posta causa un carico pesante
  • 18.24 Cosa succede alla posta se MDA Procmail fallisce
  • 18.25 Procmail legge l’intero messaggio di 90 Mb in memoria
  • 18.26 Aiuto, procmail utilizza occasionalmente un’enorme quantità di memoria
  • 18.27 Procmail ha segnalato mancanza di memoria nel mio log dettagliato
  • 18.28 Variabili DEFAULT e ORGMAIL
  • 18.29 Quando DEFAULT non può essere inviato
  • 18.30 Variabile DROPPRIVS
  • 18.31 Variabile HOME
  • 18.32 Variabile HOST
  • 18.33 Variabile LINEBUF
  • 18.34 Variabile LOG e LOGFILE
  • 18.35 Variabile TRAP
  • 18.36 Variabile UMASK
  • 18.37 UMASK e autorizzazioni
  • 18.38 Differenza di prestazioni tra backtick e ricetta “|”
  • 18.39 Nomi dei file temporanei di Procmail durante la scrittura del file
  • 18.40 Parametro $@
  • 18.41 Le variabili procmail sono terminate da null (rilevamento della stringa nulla)
  • 18.42 FROMDAEMON TO e TO e sensibilità al maiuscolo
  • 18.43 Macro TO_ decifrata
  • 18.44 Macro TO_ e RFC 822
  • 18.45 FROM_DAEMON decifrato 19.0 Questioni tecniche
  • 19.1 Elenco dei codici di uscita
  • 19.2 Elenco dei codici di precedenza
  • 19.3 Sendmail e -t
  • 19.4 RFC822 Reply-To e problema formail con più destinatari
  • 19.5 Procmail e server IMAP
  • 19.6 Macchina che elabora la posta
  • 19.7 Compilazione di procmail e MAILSPOOLHOME 20.0 Software Procmail per Emacs
  • 20.1 Cos’è Emacs
  • 20.2 Modalità procmail di Emacs e controllo del codice Procmail (Lint)
  • 20.3 Perché usare procmail con Gnus
  • 20.4 Configurazione di Gnus per procmail - Nozioni di base
  • 20.5 Gnus per procmail - Maggiori informazioni
  • 20.6 Emacs e Gnus – Giocare con i file spool
  • 20.7 Frammenti di articoli Gnus 21.0 RFC, Richiesta di commenti
  • 21.1 RFC e la loro giurisdizione (indirizzi modificati)
  • 21.2 Commenti sugli indirizzi modificati
  • 21.3 RFC e caratteri validi degli indirizzi e-mail
  • 21.4 RFC e login-name@fdqn
  • 21.5 RFC e firma dei messaggi
  • 21.6 RFC e utilizzo di MIME nei gruppi di discussione Usenet
  • 21.7 Alcuni puntatori RFC 22.0 Introduzione alle intestazioni e-mail
  • 22.1 Per saperne di più sulla posta (Risorse)
  • 22.2 Lezione di Alan Stebbens
  • 22.3 Applicato ai messaggi ricevuti
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.