Inizio Capitolo

Introduzione


Ho preso lezioni di lettura veloce ed adesso sono capace di leggere Guerra e Pace in venti minuti.
Parla della Russia [Woody Allen]

Leggere un messaggio email


I passi essenziali

Come nel caso della spedizione di un messaggio, con Mutt è molto semplice leggere un messaggio ricevuto.

1.	Dall'indice dei messaggi, selezioniamo il messaggio con il cursore,
	spostandoci su di esso con i tasti freccia e premendo Invio.

2.	Mutt visualizza il testo del messaggio, consentendo la lettura
	(attraverso il cosiddetto pager).

3.	Una volta letto il messaggio, premendo:

		i, oppure x (exit) torniamo all'indice dei messaggi;
		
		d (delete) marchiamo il messaggio come da cancellare
		(e passiamo alla lettura del prossimo messaggio elencato nell'indice);
		
		r (reply) rispondiamo al mittente;
		
		f (forward) lo inoltriamo ad un nuovo destinatario;
		
		b (bounce) lo rimbalziamo ad un nuovo destinatario.



Si naviga con i tasti comuni a molte applicazioni di editing di testo:

Freccia Giù	avanti di una riga

Freccia Sù	indietro di una riga

Pagina Giù	avanti di una pagina

Pagina Sù	indietro di una pagina

Home oppure *	seleziona il primo messaggio elencato

Fine oppure =	seleziona l'ultimo messaggio elencato

TIP: Come selezionare direttamente un messaggio nell'indice

Premendo il numero progressivo del messaggio, Mutt lo seleziona direttamente.

La selezione diretta di un item attraverso il numero progressivo che esprime la sua posizione nella lista visualizzata da Mutt è possibile anche per mailboxes (quando siamo nel browser menu) e per directory e file (quando navighiamo nelle directory del disco, ad esempio per selezionare un file da allegare).


^top

Come cambiare il criterio di ordinamento dei messaggi elencati nell'indice (index menu)

I messaggi vengono visualizzati nell'indice secondo un criterio di ordinamento prestabilito.
Possiamo cambiare l'ordinamento di default "al volo" in modo semplice. Dall'index menu:

1.	Premiamo o.

Mutt ci presenta le opzioni di ordinamento (sulla input line).

2.	Scegliamo il criterio e premiamo Invio.

Premendo O (o maiuscolo) possiamo ugualmente cambiare il criterio di ordinamento, ma invertendo la direzione del criterio adottato.

I criteri di ordinamento a disposizione:
data			premiamo d (date).
data di ricezione	premiamo r (received).
mittente		premiamo f (from).
soggetto		premiamo s (subject).
destinatario		premiamo t (to).
thread			premiamo t (thread).
dimensione		premiamo si (size).
punteggio		premiamo c (score).

Per definire l'ordinamento di default, dobbiamo settare le variabili sort e sort_aux, così come possiamo vedere dall'esempio del mio .muttrc:

# Indica a Mutt l'ordinamento primario dei messaggi nell'indice dei
# messaggi. Valori ammessi: date, date-sent, date-received, from,
# mailbox-order (unsorted), score, size, subject, threads, to.
# Si può usare anche il prefisso "reverse-" per specificare
# l'ordinamento inverso di un dato campo
# (esempio: set sort=reverse-date-sent)
# valore di default: date

set sort = threads


# Indica a Mutt l'ordinamento secondario dei messaggi quando si usa il
# sort primario per threads (definisce l'ordinamento dei threads e dei
# rami dei threads).
# Valori ammessi: tutti quelli della variabile $sort, tranne ovviamente
# threads. Si possono usare i prefissi "reverse-" e "last-".
# valore di default: date

set sort_aux = reverse-score

Per impostare l'ordinamento dei file e delle directory visualizzate attraverso il browser menu dobbiamo settare la variabile sort_browser:

# indica a Mutt quale ordinamento dei file usare nel file browser
# la maschera che elenca le mailbox disponibili
# (valori validi: alpha, date, size, unsorted.
# Si può poi usare il prefisso "reverse-")
# valore di default: alpha

set sort_browser = alpha

^top

La navigazione nel testo del messaggio è analoga a quella nell'index menu:

Freccia Giù oppure Invio	avanti di una riga

Freccia Sù			indietro di una riga

Pagina Giù oppure Spazio	avanti di una pagina

Pagina Sù oppure -		indietro di una pagina

Home				indietro fino all'inizio del messaggio


^top

Gestire la visualizzazione degli header del messaggio

In questa guida abbiamo già trattato l'argomento header nel Capitolo dedicato alla scrittura dei messaggi, quando abbiamo illustrato l'utilizzo della variabile edit_headers e della variabile my_hdr.

Ora vediamo come limitare la visualizzazione a quelli, pochi, utili per l'utente.

Nel file di configurazione dobbiamo settare i comandi ignore, unignore, unhdr_order e hdr_order

# header dei messaggi da visualizzare nel pager
# prima dichiariamo di ignorare tutto
# poi selettivamente dichiariamo quello che vogliamo vedere

ignore *
unignore Subject: Date: From: Reply-To: To: CC: BCC:\
X-Operating-System: X-Mailer: User-Agent:



# ordine di visualizzazione degli header dei messaggi nel pager
# prima azzeriamo l'ordinamento per tutti gli header
# poi ordiniamo quelli che prima abbiamo reso visibili

unhdr_order *
hdr_order Subject: Date: From: Reply-To: To: CC: BCC:\
X-Operating-System: X-Mailer: User-Agent:

TIP: Come visualizzare l'header completo del messaggio.

Nel pager Mutt visualizza gli header in base a quanto prestabilito.

Se necessario, possiamo comunque visualizzare facilmente tutti gli header che accompagnano il messaggio:

Premiamo h (comando display-toggle-weed)

Il comando è del tipo "interruttore" e pertanto per ri-visualizzare solo gli header prestabiliti ri-premeremo h.



^top

Visualizzare file allegati al messaggio


Oggi, sempre più spesso, il messaggio di posta serve per inviare documenti via internet. Nel testo del messaggio illustriamo ciò che stiamo inviando e poi alleghiamo uno o più file.

Purtroppo ancor più spesso arrivano messaggi codificati in html, sia perchè a molti piace la forma ancor prima della sostanza, sia perchè le mail pubblicitarie sono delle vere e proprie pagine web.

Mutt ci consente di leggere direttamente nel pager la parte testuale del messaggio. Gestisce infatti direttamente i MIME types text/plain, text/enriched, message/rfc822 e message/news. Oltre a questi, Mutt gestisce anche i MIME types application/pgp e PGP/MIME, che vedremo nel capitolo dedicato a GnuPG.

Ma il nostro bastardino non ci lascia a piedi se riceviamo un messaggio di posta inutilmente appesantito dalla formattazione html e/o con un file allegato creato con altre applicazioni (leggi ad esempio MS Word ©).

    Se il documento allegato appartiene ad un MIME type che non viene gestito direttamente da Mutt, incaricheremo infatti della gestione un programma ad hoc.

    In base alle impostazioni adottate potremo quindi:
  1. Visualizzarlo in automatico all'apertura del messaggio (strada preferibile nel caso di una mail html, ad esempio).
  2. Visualizzarlo "a richiesta", entrando nell'attachment menu con il comando v e premendo Invio sull'allegato da visualizzare (scelta più logica nel caso di una immagine allegata al messaggio).

Vediamo allora come configurare Mutt per i MIME types che non gestisce internamente.

Gli step logici sono riassumibili in questo modo:

  1. Predisponiamo una sorta di tabella di istruzioni ove, a fronte di ciascun MIME type, indichiamo quale programma è responsabile di gestirlo.
  2. Indichiamo a Mutt dove trovare tale tabella di istruzioni.
  3. Indichiamo a Mutt in che ordine preferiamo vengano gestiti diversi MIME types che fanno parte di uno stesso messaggio.
  4. Indichiamo a Mutt quali MIME types vogliamo che siano visualizzati automaticamente appena aperto il messaggio in lettura.

L'ultimo step ed il primo sono collegati, perchè la scelta di visualizzare automaticamente alcuni tipi di documenti deve trovare una configurazione corrispondente nella tabella di istruzioni.

1. Predisporre la "tabella di istruzioni": il file .mailcap.

La tabella di istruzioni è il file .mailcap. Apriamo (o creiamo) il file nella nostra home e vediamo come personalizzarlo per quanto serve al nostro fido mailer.

La struttura tipo di un blocco all'interno del file .mailcap prevede una riga con (separati da punti e virgola):
  1. Il MIME type da gestire.
  2. Il comando con cui gestirlo (con eventuali parametri e/o command expansion).
  3. Eventuali parametri opzionali.
Un semplice esempio:
text/html; links %s; [parametri]

L'esempio mostra che un eventuale documento html viene visualizzato lanciando il browser testuale links. Potremmo ovviamente specificare anche un browser grafico come firefox.


Il MIME type nel file .mailcap può essere espresso come: Vediamolo con tre esempi:
video; mplayer %s

video/*; mplayer %s

video/mpeg; mplayer %s

I primi due esempi producono lo stesso effetto: tutti i contenuti MIME del tipo video verranno gestiti tramite il programma mplayer. Nell'ultimo esempio si precisa di utilizzare mplayer per i video del tipo mpeg.

Il comando con cui gestire lo specifico MIME type viene seguito da %s, nel caso in cui il programma abbia bisogno di un nome di file da eseguire. %s tecnicamente è definita una command expansion: leggete il manuale di Mutt per ulteriori command expansion.
Mutt salverà il corpo del messaggio MIME in un file temporaneo che potrà essere richiamato dal programma responsabile della visualizzazione tramite, appunto, %s (lo stesso file temporaneo verrà poi eliminato da Mutt a visualizzazione avvenuta).

Tra i parametri opzionali nei .mailcap spesso si trova copiousoutput. Vediamo quando serve.

Il parametro copiousoutput dice al sistema che il programma utilizzato per gestire il MIME type indicato farà uscire sullo standard output il suo lavoro (consentendo quindi al pager di Mutt di prenderlo in input e visualizzarlo).

Mutt è un mailer testuale, potremo pertanto fargli visualizzare direttamente solo contenuti testuali o convertiti in formato testo!
Per visualizzare nel pager un messaggio formattato in html il .mailcap potrebbe essere così:

text/html; links -dump %s; copiousoutput

Dall'esempio vediamo che il messaggio html viene trasformato in formato testo dal programma links lanciato con l'opzione dump (potete usare anche elinks, forse migliore per il rendering delle pagine html) e da questo inviato sullo standard output attraverso il parametro copiousoutput.

Per visualizzare nel pager una immagine allegata dobbiamo impostare nel .mailcap una conversione in ASCII come dall'esempio seguente:

image/*; anytopnm %s | pnmscale -xsize 80 -ysize 50 | ppmtopgm | pgmtopbm | pbmtoascii ; copiousoutput

I MIME type per i quali si è specificato il parametro copiousoutput devono essere poi indicati a Mutt come contenuti che vanno visualizzati mediante il pager interno, mediante il comando auto_view seguito dal MIME type (vedi sotto il punto 4.).

Riprendendo i due esempi di conversione per text/html e image/*, dovremo avere nel .muttrc:
auto_view text/html image/*

Se una immagine convertita in ASCII non ci attrae (è il mio caso), possiamo scrivere nel .mailcap:
image/*; xzgv %s

In tale caso, il comando auto_view potrà o meno avere il MIME type image, a seconda che ci piaccia o no che l'immagine si apra in automatico (visualizzata dal programma xzgv) quando entriamo in lettura del messaggio che la contiene.

Per visualizzare nel pager di Mutt un allegato MS Word ©?

Nel .mailcap scriviamo:
application/msword; antiword %s; copiousoutput
Nel .muttrc, in auto_view aggiungiamo application/msword ai MIME type già inseriti:
auto_view text/html image/* application/msword

Nella linux box dovremo aver installato, ovviamente, il programma antiword per la conversione in testo del documento Word.

Nella sezione Downloads del sito Ataualpa for debianers trovate il mio .mailcap per avere un esempio di riferimento.

2. Specificare a Mutt dove si trova la tabella di istruzioni.

Per indicare a Mutt dove può trovare il file .mailcap, nel nostro .muttrc dobbiamo settare la variabile mailcap_path.
Ad esempio:

# Specifica a Mutt il path del-dei file .mailcap da consultare per tentare
# la visualizzazione di un MIME body non supportato direttamente
# valore di default: ""

set mailcap_path = ~/.mailcap:/etc/mailcap:/usr/lib/mime/mailcap

3. Stabilire l'ordine di preferenza nella visualizzazione di più allegati.

Per fissare l'ordine di visualizzazione, dobbiamo settare il comando alternative_order.
Ad esempio:

# Con tale comando si indica a Mutt l'ordine di preferenza per la
# visualizzazione dei diversi possibili mime types contenuti
# nel messaggio. Stabilito l'ordine, Mutt controlla il settaggio
# della variabile auto_view.
# Come impostato di seguito si fa in modo che Mutt gestisca prima
# la visualizzazione dei documenti di testo e poi di eventuali immagini.

alternative_order text/plain text/enriched text/html text image/*

4. Definire i MIME type da visualizzare automaticamente all'apertura del messaggio.

Per impostare i MIME type da visualizzare automaticamente all'apertura del messaggio, settiamo il comando auto_view. Ad esempio:

# Con auto_view si elencano i mime type che si vuole vengano visualizzati
# automaticamente da Mutt, utilizzando quanto specificato in .mailcap
# (richiede la configurazione dei file .mailcap)

auto_view text/html application/msword

Se riceviamo un messaggio con un documento di un MIME type che non è tra quelli che si è configurato per vedere automaticamente nel pager o all'apertura del messaggio, potremo entrare nel menù di Mutt dedicato agli allegati (premendo "v") e da lì richiederne la visualizzazione (verranno ovviamente eseguiti i programmi previsti nel .mailcap). Vediamolo con un esempio:

Esempio: visualizzare un allegato in formato Adobe Acrobat©

Nel .mailcap scriviamo:
application/pdf; acroread %s

Per visualizzare l'allegato, che abbiamo stabilito di non far aprire in automatico (non abbiamo aggiunto il MIME type pdf al comando auto_view):
1.	Premiamo v per entrare nell'attachment menu.

2.	Selezionia con il cursore l'allegato pdf da visualizzare.

3.	Premiamo Invio per lanciare il visualizzatore.

acroread, il lettore di file pdf, dovrà essere già installato.
Per utili consigli sul reperimento e l'installazione di acroread (Adobe Acrobat Reader) possiamo leggere la pagina dedicata ad Acrobat su DebianWiki.

In alternativa al programma "originale" Adobe, possiamo utilizzare viewer pdf alternativi come, ad esempio xpdf, installabile digitando (come root) da terminale:

apt-get install xpdf-reader

Come lanciare i visualizzatori in background.

Questa parte è tratta dal sito di Gary Johnson, a cui più sotto rimando per approfondimenti sul tema.

Gary Johnson è l'autore di uno script, mutt_bgrun, che consente di eseguire i viewer in background.
Trattiamo quindi di come fare in modo che l'esecuzione del programma deputato alla visualizzazione di un allegato non blocchi l'operatività di Mutt, fintantochè non viene richiuso.

Preciso che questa è una sofisticazione nella personalizzazione di Mutt, utile ma non necessaria.


Cosa fa lo script mutt_bgrun:
  1. Copia l'allegato passato da Mutt come file temporaneo (e da questi identificato attraverso %s) in un secondo file temporaneo.
  2. Lancia l'esecuzione del viewer in background e ritorna a Mutt il controllo (Mutt cancella il file temporaneo, ma il viewer utilizza il proprio, creato dallo script).
  3. Quando il viewer viene chiuso provvede alla cancellazione del secondo file temporaneo creato.


  4. Nel file .mailcap premetteremo mutt_bgrun al comando di ogni visualizzatore che vogliamo lanciare in background. Ad esempio:
    image/*; mutt_bgrun xzgv %s

    application/pdf; mutt_bgrun acroread %s

    Lo script potete scaricarlo qui mutt_bgrun script. Fate in modo che il file sia eseguibile e che si trovi in una directory tra quelle presenti nella vostra path.

    La nostra illustrazione sulla gestione degli allegati si chiude, ma può essere approfondita sia sul Manuale di Mutt, sia su Gary Johnson's Mutt Page, per apprendere configurazioni più sofisticate (ad esempio con opzioni di comportamento diverso a seconda che il sistema su cui si lavora abbia o meno il server grafico attivo).



    ^top


    Nel testo dei messaggi email ricevuti possiamo spesso trovare dei collegamenti a risorse disponibili in rete (tecnicamente degli URL, ovvero Uniform Resource Locator).

    Possiamo ricevere collegamenti di diverso tipo, tra cui i principali sono indirizzi di:

    Quando qualcuno ci invia un URL, Mutt ci consente di aprire facilmente il programma "adatto" e di accedere alla risorsa linkata:

    Per garantire tale funzionalità, Mutt utilizza urlview, un programma testuale che:
    1. Riconosce ed estrae gli indirizzi contenuti nel testo del messaggio
    2. Elenca tali indirizzi in un menu da cui possiamo scegliere quali accedere.
    3. Lancia l'esecuzione del programma collegandoci alla risorsa prescelta.

    Quando vediamo che in un messaggio ci sono degli URL, per accedere alle risorse linkate, dobbiamo semplicemente:
    1.	Premere Control b.
    
    2.	Selezionare dal menu il link che ci interessa.
    
    3.	Premere Invio.
    
    Premiamo q per uscire dal menu di urlview e tornare a Mutt, come indicato anche dal programma stesso nella prima riga.

    Installare e configurare urlview

    urlview, una volta parte integrante di Mutt, oggi è un programma a parte, utilizzabile anche da altri software.
    Possiamo reperirlo nella sezione contrib del sito ftp di Mutt.

    Per chi usa Debian, l'installazione è possibile con un semplice (da root):

    apt-get install urlview

    Per poter lanciare urlview come spiegato sopra, dobbiamo inserire una macro nel nostro .muttrc, così come dal seguente esempio:

    # Questa macro consente di visualizzare come lista i link
    # presenti nel messaggio, selezionarli e lanciare il programma
    # adatto alla corretta visualizzazione del tipo di risorsa linkata.
    # La macro viene eseguita premendo "control b"

    macro index \cb "|urlview\n" "gestisce url con urlview"
    macro pager \cb "|urlview\n" "gestisce url con urlview"

    Se la configurazione standard di urlview non ci soddisfa (quella di Debian va benissimo direi), possiamo personalizzarla in modo da da lanciare il nostro programma preferito per ciascun tipo di URL.

    Il modo in cui urlview gestisce i vari tipi di URL è definito nello script url_handler.sh. Apritelo ed editatelo opportunamente: è molto semplice :-) (Debian, all'installazione di urlview, posiziona lo script in /etc/urlview/).

    Un'altra possibilità è di avere nella propria $HOME il file .urlview. Partendo da un file di esempio, disponibile nella documentazione installata insieme al programma (in Debian lo troviamo in /usr/share/doc/urlview/examples/), possiamo indicare, attraverso la variabile COMMAND il programma da eseguire (unico per qualsiasi tipo di URL).

    Personalmente ritengo preferibile editare lo script url_handler che ci consente di mantenere maggiore flessibilità (programmi diversi per tipi di URL diversi).



    ^top

    Visualizzare l'X-Face del mittente il messaggio


    In questo capitolo ci limitiamo a spiegare come accorgersi che il messaggio contiene una X-Face e come visualizzarla. Nel capitolo precedente abbiamo visto come creare una nostra X-Face e come inserirla nei messaggi di posta che spediamo.

    Visualizzare nel pager l'header X-Face.

    Mettiamo a frutto quanto appreso nel paragrafo dedicato alla gestione degli Header del messaggio: facciamo in modo che tra gli header visualizzati nel pager ci sia anche quello che contiene il codice dell'eventuale X-Face.
    In tal modo sapremo che possiamo chiedere a Mutt di visualizzarla.

    Per questo nel .muttrc aggiungiamo X-Face: agli altri header da visualizzare (unignore) e ne specifichiamo l'ordine di visualizzazione (hdr_order):
    ignore *
    unignore Subject: Date: From: Reply-To: To: Cc: Bcc:\
    X-Operating-System: X-Mailer: User-Agent: X-Face:



    unhdr_order *
    hdr_order Subject: Date: From: Reply-To: To: Cc: Bcc:\
    X-Operating-System: X-Mailer: User-Agent: X-Face:

    Visualizzare l'X-Face

    Se vediamo che l'header X-Face: è presente tra gli header del messaggio ricevuto, possiamo visualizzare l'immagine utilizzando uno script realizzato da Roland Rosenfeld, richiamabile premendo Esc f, grazie alla seguente macro inserita nel .muttrc:
    # Questa macro consente di visualizzare una x-face contenuta
    # nel messaggio utilizzando lo script viev-x-face
    # Viene eseguita premendo "esc f"

    macro pager \ef "|view-x-face\n" "visualizza le X-Face"

    Lo script view-x-face lo trovate qui di seguito:
    view-x-face di Roland Rosenfeld

    Una volta salvato sulla vostra linux box, come root, copiatelo in /usr/bin e rendetelo eseguibile (rwx r x r x).

    Verificate di avere anche installati i programmi che lo script richiede per funzionare e cioè:



    ^top

    Consigli e trucchetti utili


    TIP: Come impostare il set di caratteri utilizzato per visualizzare i messaggi.

    Per una corretta visualizzazione dei messaggi è opportuno impostare la variabile charset. Ad esempio:

    # insieme di caratteri ammessi che il terminale usa per
    # visualizzare ed editare dati di testo
    # valore di default: ""

    set charset="ISO-8859-15"

    TIP: Come visualizzare l'indirizzo email completo.

    Se scorrendo l'elenco dei messaggi vogliamo vedere l'indirizzo email completo di un mittente senza entrare in lettura, premiamo @ e Mutt lo visualizzerà nell'ultima riga della finestra.


    TIP: Come aggiungere agli alias o all'address book l'indirizzo di chi ci ha scritto.

    Siamo di memoria corta eh?
    Lo abbiamo visto nella parte dedicata alla scrittura di un messaggio: andiamo a rileggere!


    TIP: Come aggiungere agli alias degli indirizzi contenuti in un messaggio.

    Se ci interessa inserire negli alias gli indirizzi di altri destinatario di un messaggio che abbiamo ricevuto, possiamo ricorrere ad uno script esterno, sviluppato da Moritz Moeller-Herrmann e chiamato mail2muttalias:
    mail2muttalias, a script that extends the mutt MTA.


    TIP: Come avere i thread collassati.

    Se abbiamo scambi di messaggi che producono thread lunghi può essere opportuno fare in modo che venga visualizzato solo il messaggio iniziale e, contemporaneamente, il numero dei messaggi che compongono il thread.

    In questo modo l'elenco dei messaggi si presenta più "pulito".

    Questo vale, ovviamente, se approfittando delle capacità di Mutt, abbiamo settato la variabile sort per avere un ordinamento in base al thread.

    Premiamo Esc v			collassiamo il thread selezionato.

    Premiamo Esc V (v maiuscola) collassiamo tutti i thread della mailbox.


    Quando un thread è collassato diventa importante conoscere quanti sono i messaggi che contiene.
    Per visualizzare il numero dei messaggi che compongono un thread dobbiamo settare la variabile index_format, così come possiamo vedere dall'esempio del mio .muttrc.

    # indica a Mutt quali informazioni dei messaggi mostrare nella finestra
    # dell'indice dei messaggi (vedi mrcb.muttrc per i valori ammessi)
    # C=n° del msg; N=score del msg; Z= status flag msg; b=nome del
    # file msg; d=data/ora msg; n=autore o address del msg; l=n° linee msg;
    # M=numero messaggi nel thread; s=soggetto del msg;
    # c=peso in bytes del messaggio

    set index_format = "(%3C)[sc.%2N] %Z %{%b %d} DA: %-25.25n (lin:%4l msg:%2M) %s %> %5c"

    L'impostazione delle informazioni che vogliamo far visualizzare a Mutt nelle diverse finestre qui è solo anticipato, poichè è approfondito nel Capitolo dedicato al Look 'n Feel.


    Per trovare tutti i thread collassati già all'avvio di Mutt, possiamo utilizzare un hook per far eseguire a Mutt il comando necessario.

    # per avere i thread collassati all'avvio di Mutt

    folder-hook . 'exec collapse-all'

    L'utilizzo degli hooks (in italiano uncini, una delle armi più potenti di Mutt), qui è solo anticipato: viene infatti trattato estensivamente in un successivo capitolo dedicato.


    TIP: Come tenere a video l'indice quando si apre il pager.

    Mutt apre a tutto schermo il pager per la lettura del messaggio.

    Se preferiamo tenere l'indice dei messaggi sempre in vista sulla porzione superiore dello schermo, dobbiamo settare il numero di righe nella variabile pager_index_lines, come dall'esempio seguente.

    # numero di voci dell'indice dei messaggi da visualizzare durante la
    # lettura nel pager (>0 -> splitta la finestra in due)
    # valore di default: 0

    set pager_index_lines = 12

    TIP: Come evitare che Mutt avanzi automaticamente al messaggio seguente.

    Arrivati alla fine del messaggio Mutt passa alla lettura del messaggio che segue nell'indice.

    Se preferiamo che non lo faccia, dobbiamo settare la variabile pager_stop, come vediamo nell'esempio dal mio .muttrc.

    # se settato a yes, impedisce che PageDown (o lo spazio) porti
    # al messaggio successivo quando si raggiunge la fine di quello
    # in lettura
    # valore di default = no

    set pager_stop = yes

    TIP: Come passare alla lettura del prossimo messaggio non letto.

    Finita la lettura del messaggio, dal pager possiamo

    Premere x o i	per tornare all'indice e da lì selezionare un altro messaggio.
    
    Premere TAB	per visualizzare subito nel pager il prossimo messaggio non letto.
    

    TIP: Come facilitare la lettura di un messaggio su più pagine.

    Quando avanziamo di una pagina nella lettura del messaggio, Mutt non visualizza nessuna riga della pagina "lasciata".

    Se preferiamo, per facilitare la lettura, che le ultime righe della pagina precedente vengano mostrate a video come le prime della nuova pagina, dobbiamo settare il numero delle righe nella variabile pager_context, come nell'esempio di seguito.

    # numero di righe della pagina precedente da visualizzare nella pagina
    # seguente durante lo scorrimento tra pagine nel pager interno
    # valore di default: 0

    set pager_context = 2

    TIP: Come non visualizzare la parte di testo quotata.

    Se stiamo leggendo un messaggio di risposta e il testo quotato è molto lungo, possiamo non visualizzarlo grazie al comando toggle-quoted premendo T (t maiuscolo: Toggle-quoted).

    Anche questo comando è del tipo "interruttore". Ri-premiamo T per ri-visualizzare il testo quotato.

    Mutt individua il testo quotato in base al settaggio della variabile quote_regexp, così come possiamo vedere dall'esempio del mio .muttrc:

    # espressione regolare per riconoscere il testo quotato nei messaggi
    # valore di default: "^([ \t]*[|>:}#])+"

    set quote_regexp = "^([ \t]*[|>:}#])+"

    Il settaggio serve anche al comando color per individuare il testo quotato da colorare (illustrato nel Capitolo dedicato al Look 'n Feel di Mutt)


    TIP: Come saltare al testo non quotato.

    In alternativa a toggle-quoted, possiamo utilizzare il comando skip-quoted, che fa saltare Mutt alla prima riga di testo successiva ad una parte di testo quotata.
    Di default, eseguiamo tale comando premendo il tasto S (s maiuscolo: Skip-quoted).



    ^top

    Configurare Fetchmail per scaricare la posta dal server


    In conclusione di questo capitolo, vediamo come poter scaricare i messaggi che poi leggiamo con Mutt.

    Per scaricare i messaggi di posta elettronica che ci sono stati indirizzati, il mio consiglio è di utilizzare il programma fetchmail, piuttosto che la funzionalità interna a Mutt.

    Fetchmail è un programma molto semplice da configurare ed utilizzare, sviluppato da Eric S. Raymond, autore anche di molti saggi sulla cultura hacker ed open source, come il famoso "The Cathedral and The Bazaar".

    Fetchmail gestisce un grandissimo numero di protocolli (POP2, POP3, RPOP, APOP, KPOP, i vari tipi di IMAP, ETRN e ODMR), ma ai nostri fini ci concentreremo sul classico POP3.

    Se vogliamo approfondire (non lo faremo in questa guida) i meccanismi di funzionamento del protocollo POP3, i riferimenti ufficiali sono RFC 1939 - Post Office Protocol - Version 3 e RFC 2449 - POP3 Extension Mechanism.

    Le principali distribuzioni installano di default fetchmail. Pertanto, se abbiamo un sistema linux già operativo, probabilmente dovremo solo editare nella nostra home directory il file di configurazione .fetchmailrc, per inserire le informazioni necessarie per connetterci al server del nostro internet provider.

    Per avere conferma che fetchmail è già installato digitiamo in una shell
    whereis fetchmail

    Se whereis trova l'eseguibile ed il manuale, il programma è già in pancia:
    ataualpa@Ciatty:~$ whereis fetchmail
    fetchmail: /usr/bin/fetchmail /usr/share/man/man1/fetchmail.1.gz

    Per i più svogliati, è disponibile anche fetchmailconf, un programma a interfaccia grafica che ci guida nell'inserimento dei dati necessari e che scrive al nostro posto il file di configurazione.

    Qualora non avessimo ancora installati i due programmi, ipotizzando di essere dei bravi debianer, andremo con un semplice (come root):
    apt-get install fetchmail fetchmailconf


    Noi lasciamo tuttavia da parte fetchmailconf ed illustriamo le semplici informazioni da inserire direttamente in .fetchmailrc per eseguire una connessione con un server POP3.

    Qualora il file .fetchmailrc non esista già nella nostra home directory possiamo creare un file ex-novo.

    Se fate un ricerca con locate troverete sicuramente nel vostro pc dei file di esempio che fanno parte del pacchetto.

    Su Debian i file di esempio per .fetchmailrc li troviamo in:
    /usr/share/doc/Debian/reference/examples/fetchmailrc
    /usr/share/doc/fetchmail/examples/fetchmailrc.example

    Un file .fetchmailrc che possiamo utilizzare come base di partenza lo troviamo anche nelle sezione Downloads del sito Ataualpa for debianers.

    Attenzione ai permessi del file, che è opportuno siano a 600 (solo l'utente può leggere e scrivere il file). Il comando da shell per settare i permessi correttamente è:
    chmod 600 ~/.fetchmailrc

    Inserire i settaggi per la connessione in .fetchmailrc ci evita di specificarli sulla riga di comando, quando lanceremo l'esecuzione del programma. Ricordiamo, però, che se decideremo di specificare un parametro direttamente a riga di comando, questo verrà utilizzato a prescindere da quello, magari in conflitto, contenuto nel .fetchmailrc.


    La sintassi standard "di base" è la seguente:

    poll SERVER protocol PROTOCOLLO username NOME is UTENTE password PASSWORD

    Inserendo il "#" come primo carattere di una riga la qualifichiamo come riga di commento

    Ad esempio:
    # connessione al server di provider.it
    poll pop.provider.it
    protocol pop3
    username [email protected] is ataualpa
    password parola.segreta

    Già da questo primo esempio, prima ancora di illustrare il significato dei comandi e dei parametri, credo che sia evidente la semplicità di configurazione di fetchmail.


    Notiamo che alcuni parametri (protocol, username) possono, se vogliamo, essere espressi in forma abbreviata (proto, user):
    poll SERVER proto PROTOCOLLO user NAME is UTENTE password PASSWORD
    Ad esempio:
    # connessione al server di provider.it
    poll pop.provider.it
    proto pop3
    user [email protected] is ataualpa
    password parola.segreta

    E' inoltre possibile utilizzare anche una sintassi più estesa e "parlante", inserendo dove riteniamo opportuno "and", "with", "has", "wants" e "options", oppure i segni di interpunzione ("," ":" e ";").
    Queste parole ed i segni di interpunzione sono di fatto ignorati da fetchmail, ma sono utili per rendere più leggibile (seppur in inglese!) il nostro settaggio delle variabili.

    Qualora l'argomento di una opzione sia una stringa contenente spazi (tipico per le password), dobbiamo racchiudere la stringa tra doppie virgolette (" ").

    Vediamo con un altro esempio l'utilizzo di questa sintassi estesa:
    # connessione al server di provider.it
    poll pop.provider.it with proto pop3,
    user [email protected] and is ataualpa
    with password "parola segreta"

    Ora passiamo a illustrare le opzioni più tipiche ed utili che possiamo inserire nel nostro .fetchmailrc.

    Teniamo bene presente che, potendo interrogare anche più di un server (ad esempio perchè abbiamo una casella con tin e una con tiscali), in .fetchmailrc avremo dei blocchi di istruzioni per ciascun server, ovviamente con un minimo di uno (se non abbiamo un server, da chi scarichiamo?).

    Un blocco di istruzioni è composto dal comando poll con il nome del server, seguito dalle opzioni per il server e ulteriormente seguito dalle ozpioni per l'utente.

    Attenzione: tutte le opzioni per il server devono sempre precedere quelle per l'utente, altrimenti fetchmail genererà un errore di sintassi, abortendo.

    Iniziamo con le opzioni "base" che già abbiamo utilizzato per illustrare la sintassi del file di configurazione:

    poll è il comando di connessione al server di posta.

    protocol[proto] (opzione server): ci consente di specificare il tipo di protocollo utilizzato dal server (il protocollo può essere scritto in maiuscolo o minuscolo indifferentemente).

    username[user] (opzione utente): specifica l'utente per il quale si chiede l'autenticazione sul server di posta.

    is (opzione utente); specifica l'utente locale alla cui mailbox indirizzare i messaggi.

    password (opzione utente): specifica la password di accesso al server per l'utente.

    Precisando l'utente locale (is ataualpa), indichiamo a fetchmail a quale mailbox locale vanno consegnati i messaggi scaricati dal server. La consegna viene di default effettuata da fetchmail inoltrando il messaggio sulla porta 25, dove suppone di trovare un server di posta in ascolto (ad esempio postfix), che possa prendere in consegna il messaggio, per consegnarlo alla mailbox specificata (eventualmente facendolo pre-trattare anche da un programma come procmail).


    Sempre nell'ottica di rendere più leggibile la sintassi, possiamo aggiungere there dopo il nome utente con cui chiediamo l'autenticazione sul server e here dopo il nome utente locale.

    Ad esempio:
    # connessione al server di provider.it
    poll pop.provider.it with proto pop3,
    user [email protected] there is ataualpa here
    with password "parola segreta"
    Oppure:
    # connessione al server di provider.it
    poll pop.provider.it with proto pop3,
    user ataualpa here is [email protected] there
    with password "parola segreta"

    Un'altra precisazione: non è strettamente necessario includere la password nel file di configurazione. Qualora essa manchi, fetchmail ci chiederà di digitarla al momento opportuno. Ma se lo usiamo come demone o lanciato da cron/anacron, senza che noi si sia necessariamente davanti alla shell dove stiamo eseguendo il programma, allora la password è meglio che la inseriamo in .fetchmailrc!


    Se il nostro sistema non ha sempre attivo il server di posta (cosa inusuale), oppure se preferiamo che fetchmail consegni il messaggio direttamente al programma di smistamento e filtraggio posta da noi preferito, ad esempio procmail, possiamo utilizzare l'opzione utente mda.

    Vediamo un esempio di .fetchmailrc con l'opzione utente mda:
    # connessione al server di provider.it
    poll pop.provider.it with proto pop3,
    user [email protected] there, with password "parola segreta",
    and is ataualpa here
    wants options mda "/bin/procmail";

    Se non disponiamo di una connessione flat, per evitare lo scaricamento di messaggi pesanti, possiamo utilizzare l'opzione utente limit (a cui facciamo seguire il numero massimo di byte che fetchmail accetta di scaricare per ogni singolo messaggio).

    Vediamo un esempio dell'opzione utente limit, con un limite fissato a 2 MB:
    # connessione al server di provider.it
    poll pop.provider.it with proto pop3,
    user [email protected] there, with password "parola segreta",
    and is ataualpa here
    with limit 2097152

    Quali messaggi vengono scaricati da fetchmail?

    Il comportamento di fetchmail in ordine allo scarico messaggi dal server è regolato da 3 opzioni utente che, per la loro funzione, vengono definite disposal options, ovvero opzioni dispositive.

    fetchall indica a fetchmail di scaricare tutti i messaggi presenti sul server (new e old).
    keep indica a fetchmail di non cancellare i messaggi una volta terminato lo scarico dal server.
    flush indica a fetchmail di cancellare i messaggi "old" prima di effettuare lo scarico dei nuovi.

    Al contrario:

    no fetchall indica a fetchmail di scaricare solo i messaggi nuovi.
    no keep indica a fetchmail di cancellare i messaggi scaricati dal server.
    no flush indica a fetchmail di non cancellare i messaggi "old" prima di effettuare lo scarico dei nuovi.

    Il comportamento di default di fetchmail è il seguente:

    Il default in pratica è la terna di opzioni utente "no fetchall", "no keep", "no flush".

    Se il comportamento di default di fetchmail non soddisfa le nostre esigenze, possiamo utilizzare queste 3 opzioni utente. Vediamo un caso esemplificativo, diverso dal banale utilizzo di uno solo dei tre parametri (per cui la spiegazione spero sia superflua).

    Utilizzo in combinata delle opzioni utente keep e flush, più l'opzione server uidl.

    Ipotizziamo di voler soddisfare queste tre esigenze:

    1. Scaricare anche messaggi marcati old dal server (ad esempio perchè già letti "direttamente" attraverso un servizio di webmail, oppure già scaricati da un altro PC ma non cancellati dal mailserver).
    2. Tenere comunque tendenzialmente libera la casella di posta dai messaggi vecchi.
    3. Non cancellare subito i messaggi scaricati, nel caso fosse necessario recuperare un messaggio (ad esempio a causa di una impropria cancellazione sul nostro PC).

    Per soddisfare la prima e la seconda esigenza, il comportamento di default di fetchmail non è adeguato, perchè i messaggi marcati "old" non verrebbero ne scaricati, nè cancellati.

    Affinchè i messaggi marcati "old" dal server ma non ancora scaricati sulla nostra macchina possano essere presi in considerazione da fetchmail, dobbiamo attivare l'opzione server uidl. Sfruttando la funzionalità UIDL dei server POP3, fetchmail tiene traccia localmente (nel file .fetchids) dei messaggi già scaricati e, quando dialoga con il server, confronta gli UID (unique identifier) dei messaggi sul server con quelli archiviati per decidere i messaggi da scaricare, senza quindi considerare lo status "old" o "new" dei messaggi. In tal modo soddisfiamo la prima esigenza.

    L'utilizzo dell'opzione uidl è subordinato alla disponibilità della funzione presso il server di posta del nostro provider. Per accertarcene, eseguiamo fetchmail da una shell e osserviamo la risposta fornita dal server dopo che fetchmail gli invia il comando CAPA. Se nell'elenco della capacità del server (capabilty list) leggete anche UIDL, allora potete utilizzare questa opzione.

    Dopo aver digitato:
    fetchmail -v

    A video, se uidl è gestito dal server, dovreste vedere qualcosa del genere:

     fetchmail: 6.2.5 querying pop.provider.it (protocol POP3) at dom 24 apr 2005 09:36:28 CEST: poll started
    fetchmail: POP3< +OK ifm-pop (version 5.0.0) at fe-1a starting.
    fetchmail: POP3> CAPA
    fetchmail: POP3< +OK Capability list follows
    fetchmail: POP3< TOP
    fetchmail: POP3< UIDL
    fetchmail: POP3< RESP-CODES
    fetchmail: POP3< AUTH-RESP-CODE
    fetchmail: POP3< X-MACRO
    fetchmail: POP3< .
    fetchmail: POP3> USER [email protected]
    fetchmail: POP3< (continua.....)

    Per soddisfare la terza esigenza, ugualmente, il comportamento di default di fetchmail, che cancella i messaggi appena scaricati, non è adeguato.

    Per non cancellare subito i messaggi (terza esigenza), ma avere comunque tendenzialmente libera la casella di posta sul server (seconda esigenza), possiamo far tenere sul server i messaggi appena scaricati e farli cancellare solo alla successiva connessione, prima di procedere ad un nuovo scarico. Per far questo dobbiamo utilizzare "in combinata", le opzioni utente keep e flush.

    Va precisato che, usando queste due opzioni, corriamo il rischio di cancellare impropriamente qualche messaggio nel caso in cui fetchmail abortisca, oppure qualora non vada a buon fine la consegna del messaggio nella nostra mailbox a cura del MDA incaricato (Mail Delivery Agent, ad esempio postfix o procmail). Fetchmail, infatti, alla successiva connessione cancellerebbe dei messaggi che di fatto non abbiamo visto e mai vedremo.

    Se lanciamo fetchmail da terminale solo quando ci serve scaricare la posta ci dovremmo accorgere di un suo eventuale problema: in tal caso l'accoppiata di opzioni keep e flush ci fa correre un rischio limitato (alla nostra disattenzione). Se invece utilizziamo fetchmail come demone o lanciato da cron/anacron, pensiamoci due volte.

    Vediamo un esempio che comprende l'opzione server uidl e le opzioni utente keep e flush:
    # connessione al server di provider.it
    poll pop.provider.it with proto pop3,
    wants uidl
    user [email protected] there, with password "parola segreta",
    and is ataualpa here
    with options keep and flush

    Utilizzo in combinata delle opzioni keep e uidl

    L'utilizzo dell'opzione server uidl è consigliabile anche quando decidiamo di utilizzare l'opzione utente keep perchè preferiamo che i messaggi rimangano sul server remoto anche dopo essere stati scaricati (ad esempio perchè ci interessa poterli scaricare e leggere anche dal PC dell'ufficio).

    Se qualche messaggio, come nell'esempio sopra, l'abbiamo già letto tramite la webmail o scaricato senza cancellarlo dal server utilizzando un altro pc (ad esempio quello del lavoro), per fetchmail sarà comunque da scaricare perchè non compreso nell'elenco di UID contenuto localmente in .fetchids.

    Per dare una ripulita ogni tanto ai messaggi vecchi possiamo sempre lanciare fetchmail da riga di comando con l'opzione utente flush. Ricordiamo infatti che le opzioni inserite a riga di comando prevalgono su quelle contenute nel file di configurazione.

    Vediamo un esempio che comprende l'opzione server uidl e l'opzione utente keep:
    # connessione al server di provider.it
    poll pop.provider.it with proto pop3,
    wants uidl
    user [email protected] there, with password "parola segreta",
    and is ataualpa here
    with options keep

    Come mettere alcune opzioni a fattor comune per più server

    Nel file .fetchmailrc possiamo specificare più server da cui scaricare la posta. In tal caso, qualora alcuni settaggi siano comuni tra i vari server, possiamo usare la parola chiave defaults seguita dalle opzioni che ci interessa applicare a tutti i server.

    Qualora per un singolo server una opzione debba essere diversa da quella specificata come defaults, sarà sufficiente settarla al valore opportuno nel suo blocco di istruzioni.

    Vediamo un esempio di utilizzo della parola chiave defaults
    # opzioni da utilizzare per tutti i server, salvo diversamente specificato
    defaults
    proto pop3
    wants uidl
    wants timeout 10
    with options flush
    is ataualpa here

    # connessione al server di provider.uno.it
    poll pop.provider.uno.it
    user [email protected] there,
    with password "parola segreta uno",

    # connessione al server di provider.due.it
    poll pop.provider.due.it
    user [email protected] there,
    with password "parola segreta due",

    Come disabilitare lo scarico da un server

    Se nel .fetchmailrc abbiamo un blocco di istruzioni per un server che non dobbiamo temporaneamente utilizzare, possiamo rapidamente disabilitarlo, utilizzando il comando skip al posto di poll.

    Vediamo un esempio di utilizzo del comando skip
    # opzioni da utilizzare per tutti i server, salvo diversamente specificato
    defaults
    proto pop3
    wants uidl
    wants timeout 10
    with options flush
    is ataualpa here

    # connessione al server di provider.uno.it
    skip pop.provider.uno.it
    user [email protected] there,
    with password "parola segreta uno",

    # connessione al server di provider.due.it
    poll pop.provider.due.it
    user [email protected] there,
    with password "parola segreta due",

    Di seguito un esempio del mio .fetchmailrc (contiene qualche altra opzione che non ho illustrato sopra; in ogni caso sufficientemente commentata così da consentire di comprenderne la funzione).

    # Permessi del file: opportuno settarli a 600

    # Administrative Options
    # ------------------------------

    # l'ultimo utente locale a cui consegnare la posta nel caso fetchmail non
    # trovi nessun utente locale che corrisponde al destinatario.
    # da usare per il multidrop ovvero quando si scarica la posta di più utenti
    set postmaster root

    # chiede a fetchmail di non rimbalzare al mittente del messaggio
    # eventuali errori ma di inviarli al postmaster
    set no bouncemail

    # chiede a fetchmail di NON rimbalzare al mittente, informandolo che non accettiamo
    # il messaggio, un messaggio che presenta un return code prodotto dal server
    # di posta e che indica un possibile messaggio di spam
    set no spambounce

    # Comando di connessione al server
    # ---------------------------------------------
    poll pop.provider.it

    # Protocol and Query Options (opzioni server)
    # -------------------------------------------------------
    -
    # Specifica il protocollo da usare per la connessione con
    # il server remoto di posta
    with proto POP3

    # Specifica un tempo (in secondi) superato il quale fetchmail assume
    # che il server non risponde e quindi rinuncia alla connessione.
    # tempo di default = 300 secondi (5 minuti)
    with timeout 15

    # Forza il protocollo POP3 all'utilizzo di UIDL ovvero del monitoraggio
    # lato client dei messaggi nuovi (UIDL: Unique ID Listing)
    wants uidl

    # Authentication Options (opzioni utente)
    # ---------------------------------------------------
    user "[email protected]" there
    with password "la mia password"
    is user "ataualpa" here

    # Disposal Option (opzione utente)
    # ------------------------------------------
    options flush

    # Delivery Control Option (opzione utente)
    # ---------------------------------------------------
    # l'opzione mda consente di forzare fetchmail a passare il messaggio
    # direttamente ad un MDA (come procmail) piuttosto che forwardarlo sulla
    # porta 25
    mda /usr/bin/procmail

    Come utilizzare fetchmail

    Per scaricare la posta abbiamo a disposizione 3 modalità di utilizzo di fetchmail:

    Possiamo eseguire manualmente fetchmail digitando all'occorrenza da una shell:
    fetchmail -v

    L'opzione v (verbose) consente di ricevere informazioni dal programma sull'esito delle varie fasi di connessione con il server remoto di posta. Più "v" aggiungiamo, maggiore sarà il dettaglio informativo fornito a video da fetchmail (consiglio di non superare -vv per evitare di essere inondati).

    Nel Capitolo dedicato al Look 'n Feel di Mutt, vedremo come sia semplice impostare una macro che lancia l'esecuzione di fetchmail mentre siamo in Mutt.


    Possiamo eseguire fetchmail in modalità demone, digitando il comando da una shell seguito dall'opzione -d e dalla frequenza desiderata di scaricamento periodico della posta dal server (frequenza espressa in numero di secondi).

    Ad esempio, digitando
    fetchmail -d 300 &

    fetchmail si avvia e scarica la posta, poi rimane in esecuzione in background finchè, trascorsi 5 minuti, non si riconnette e così via fino a che rimane in esecuzione.

    Per fare in modo che quando lanciamo fetchmail dalla shell, questo venga eseguito in modalità demone senza necessità di specificarlo a riga di comando, possiamo settare questa preferenza in .fetchmailrc. A tal fine utilizziamo l'opzione daemon seguita dal numero di secondi di intervallo tra ogni tentativo di connessione al server di posta.

    Vediamo un esempio di .fetchmailrc per l'utilizzo di fetchmail in daemon mode:
    # per eseguire fetchmail come demone, con scaricamento ogni 10 minuti
    set daemon 600
    # connessione al server di provider.it
    poll pop.provider.it with proto pop3,
    wants uidl
    user [email protected] there, with password "parola segreta",
    and is ataualpa here
    with options keep and flush

    Per terminare l'esecuzione del demone sarà sufficiente digitare:
    fetchmail --quit


    Se ci interessa utilizzare fetchmail come demone, piuttosto che lanciarlo e chiuderlo manualmente, è opportuno far gestire agli init script il suo avvio al boot e la sua chiusura allo shut down del sistema. Se abbiamo una connessione ADSL always on, il demone è la soluzione più comoda.

    Illustriamo di seguito come settare il sistema, prendendo a riferimento Debian.

    Per prima cosa visualizziamo il file /etc/init.d/fetchmail. Questo è lo script che verrà eseguito all'avvio e alla chiusura. All'inizio del file leggiamo che il sistema si aspetta di trovare il file di configurazione di fetchmail in /etc/fetchmailrc. Il file deve avere permessi 600 e appartenere all'utente fetchmail. Relativamente a permessi e utente sarà tuttavia lo stesso script che si accerterà che siano corretti, eventualmente correggendoli. Pertanto ciò che dobbiamo fare è di copiare il nostro .fetchmailrc già settato dalla nostra home a /etc/fetchmailrc. Nel .fetchmailrc l'opzione daemon deve essere ovviamente impostata.

    Successivamente dobbiamo fare in modo che il sistema sappia che deve eseguire lo script. Per questo abbiamo due strade alternative (da percorrere entrambe come root):

    La prima è quella di utilizzare update-rc.d, digitando in una shell
    update-rc.d fetchmail default priority 30

    La seconda strada è di utilizzare rcconf (Debian Runlevel Configuration tool) che, con una comoda interfaccia testuale, ci consente di selezionare fetchmail come demone e provvede ad aggiornare i link allo script nei vari runlevel.


    Utilizzo di fecthmail tramite cron/anacron

    Se preferiamo avere meno demoni attivi possibili nel nostro sistema, oppure se non siamo sempre connessi ad internet, una soluzione può essere quella di far eseguire fetchmail da cron/anacron. Il programma viene eseguito ad intervalli regolari da noi specificati ed ogni volta che ha terminato il suo compito si chiude, senza rimanere attivo in background (come invece accade quando opera come demone).

    Se non siamo connessi ad internet, prima di lanciare fetchmail, si dovrebbe attivare la connessione. Per questo la cosa migliore è realizzare uno script che prima di eseguire fetchmail verifichi se siamo in rete ed in caso negativo provveda ad attivare la connessione (ed eventualmente anche a chiuderla).

    La soluzione di gestire fetchmail con cron/anacron non mi piace molto. Io lo lancio manualmente da shell o mentre sono dentro Mutt grazie ad una macro. Come seconda scelta vedo l'utilizzo come demone.

    In ogni caso, qui di seguito riporto alcune righe di esempio per crontab (editabile con crontab -e).

    La riga seguente di /etc/crontab scarica ogni giorno la posta alle ore 21 e 30
    30 21 * * * /usr/bin/fetchmail -s

    Questa invece scarica la posta ogni minuto
    0-59/12 * * * * /usr/bin/fetchmail -s


    ^top

    Conclusione

    In questo terzo capitolo abbiamo imparato come:

    1. Leggere un messaggio ricevuto.
    2. Muoversi all'interno dell'indice dei messaggi.
    3. Modificare il criterio di ordinamento dei messaggi elencati nell'indice.
    4. Muoversi all'interno del messaggio che si sta leggendo tramite il pager.
    5. Gestire la visualizzazione degli header del messaggio.
    6. Visualizzare i vari tipi di file che possono arrivare come allegati.
    7. Accedere a risorse (URL) linkate nel testo del messaggio.
    8. Visualizzare una X-Face inserita tra gli header del messaggio.
    9. Utilizzare altre funzioni che rendono più agevole l'utilizzo di Mutt in lettura.
    10. Configurare fetchmail per scaricare la posta dal mailserver del nostro provider.


    << Capitolo Precedente Prossimo Capitolo >>