14.2. Mutt e gli Hooks

Nota: Questa sezione nasce da una serie di scambi di email con Franco Vite (Caparossa, del LUG di Firenze), cui va il merito della parte della descrizione seguente relativa ai "send-hook", anche se rielaborata in alcuni punti. Grazie mille quindi a Caparossa! ;-)

Gli "hooks" (uncini) sono il metodo usato all'interno di mutt per impostare delle opzioni specifiche per un dato folder/header/email/altro, scavalcando le impostazioni predefinite nel file di configurazione. Ne esistono diversi tipi:

Tutte le regexp sottintendono un hook di default (appunto default_hook, impostato col comando set default_hook = "..." del file di configurazione e che ha come valore predefinito "~f %s !~P | (~P ~C %s)", che "matcha" messaggi con mittente %s ma non creati da te oppure messaggi creati da te e inviati a %s in To: o Cc:).

Dovunque si possa specificare un pattern (dove lecito e logico...) si possono usare i seguenti specificatori per restringere la ricerca a ciò che si vuole:

~A              tutti i messaggi
~b EXPR         messaggi contenenti EXPR nel corpo del messaggio
~B EXPR         messaggi contenenti EXPR nell'intero messaggio
~c USER         messaggi inviati in Cc all'USER
~C EXPR         messaggi inviati a EXPR in To: o Cc:
~D              messaggi cancellati
~d [MIN]-[MAX]  messaggi con ``date-sent'' nell'intervallo indicato
~E              messaggi scaduti (spirati...)
~e EXPR         messaggi contenenti EXPR nel campo ``Sender''
~F              messaggi con il FLAG impostato
~f USER         messaggi con mittente USER
~g              messaggi segnati con PGP
~G              messaggi codificati con PGP
~h EXPR         messages contenenti EXPR negli header del messaggio
~k              messaggi contenenti una chiave PGP
~i ID           messaggi con ID nel campo ``Message-ID''
~L EXPR         messaggi originato o ricevuto da EXPR
~l              messaggi indirizzati a una mailing list conosciuta
~m [MIN]-[MAX]  messaggi nell'intervallo MIN-MAX *)
~n [MIN]-[MAX]  messages con un punteggio nell'intervallo MIN-MAX *)
~N              messaggi nuovi
~O              messaggi vecchi
~p              messaggi indirizzati a te (consulta $alternates)
~P              messaggi creati da te (consulta $alternates)
~Q              messaggi cui si è risposto
~R              messaggi letti
~r [MIN]-[MAX]  messaggi con ``date-received'' nell'intervallo indicato
~S              messaggi supersede (eliminati dal server...)
~s SUBJECT      messaggi con SUBJECT nel campo ``Subject''
~T              messaggi con un tag
~t USER         messaggi indirizzati all'USER
~U              messaggi non letti
~v              messaggio parte di un thread collassato
~x EXPR         messaggi contenenti EXPR nel campo ``References''
~y EXPR         messaggi contenenti EXPR nel campo ``X-Label''
~z [MIN]-[MAX]  messaggi con dimensione nell'intervallo MIN-MAX *)

*) Sono permesse anche le forme <[MAX], >[MIN], [MIN]- e -[MAX].
     

Si possono concatenare più pattern in successione, che funzioneranno in AND logico ("~t mutt ~f elkins" selezionerà i messaggi inviati a "mutt" da "elkins"). Gli altri operatori logici sono: ! (NOT), | (OR), e le parentesi tonde () per raggruppare ("!(~t mutt|~c mutt) ~f elkins" selezionerà i messaggi che non hanno "mutt" nei campi To: o Cc: e creati da "elkins").

Le ricerche per data DEVONO essere nel formato GG/MM/AA (mese e anno sono opzionali, e assumono come valori predefiniti quelli del mese e anno correnti). Ad esempio: "~d 20/1/95-31/10". Se ometti la prima data (MIN), indicando solo ``-GG/MM/AA'', verranno selezionati tutti i messaggi prima di quella data. Se ometti la seconda data (MAX), e specifichi solo ``DD/MM/YY-'', verranno selezionati tutti i messaggi dopo quella data. Se indichi solo una singola data senza il trattino (``-''), verranno selezionati solo i messaggi di quella specifica data. Altre info nel manuale ufficiale.