# Mutt (Italiano)

Articoli correlati

- fdm
- msmtp

Mutt è un programma per la gestione della posta elettronica testuale rinomato per le sue straordinarie caratteristiche. Mutt è il client di posta preferito da un gran numero di utenti esperti. Sfortunatamente, un'installazione standard di Mutt è tormentata da complesse associazioni di tasti, e ha una quantità tale di documentazione da scoraggiare i nuovi utenti. Questa guida aiuterà l'utente medio a configurare ed eseguire Mutt, e iniziare a personalizzarlo secondo le proprie esigenze.

## Generalità

Mutt è un Mail User Agent (MUA), concepito in origine soltanto per leggere la posta. Per questo motivo, le funzioni di recupero, invio e filtraggio implementate successivamente sono gestibili da altre applicazioni. La maggior parte dei settaggi di Mutt riguarda programmi esterni che eseguano le azioni richieste.

In ogni caso, il pacchetto ufficiale mutt è stato compilato con il supporto per IMAP, POP3 e SMTP e quindi non necessita di programmi esterni per trattare la posta elettronica.

Questo articolo tratterà sia l'utizzo nativo di IMAP per inviare/ricevere email, sia il settaggio basato su OfflineIMAP o getmail (POP3) per ricevere le mail, procmail per filtrarle in caso di POP3, e msmtp per inviarle.

## Installazione

Installare mutt dai repositories ufficiali.

Opzionalmente è possibile installare applicazioni esterne, per il setup IMAP come offlineimap e msmtp.

O (se si usa POP3) getmail o fdm e procmail.

Nota: Se si ha bisogno dei soli metodi di autenticazione LOGIN e PLAIN, questi sono soddisfatti della dipendenza libsasl.
Nota: Se si vuole (o deve) usare CRAM-MD5, GSSAPI o DIGEST-MD5, installare anche il pacchetto cyrus-sasl-gssapi.
Nota: Se si utilizza Gmail come server smtp, può essere necessario installare il pacchetto cyrus-sasl.

## Configurazione

Questa sezione riguarda IMAP, #POP3, #Maildir e la configurazione #SMTP.

Si noti che Mutt riconosce due posizioni per i propri file di configurazione: `~/.muttrc` e `~/.mutt/muttrc`. Funziona in entrambi i casi.

### IMAP

Impostazioni locali ed esterne

#### Utilizzo del supporto nativo IMAP

La versione Mutt dei repositories ufficiali è compilata con il supporto IMAP. È necessario disporre per lo meno di 4 righe nel file muttrc per poter accedere alla posta.

##### imap_user

    set imap_user=USERNAME

Continuando con l'esempio precedente, ricordate che Gmail richiede l'indirizzo email completo (questo non è standard):

    set imap_user=your.username@gmail.com

##### imap_pass

Se non impostato, la password verrà richiesta, in quanto è l'opzione predefinita.

    set imap_pass=SECRET

##### cartella

Invece di una directory locale che contiene tutta la posta (e relative directory), utilizzare il server (e se necessario, la cartella più in alto nella gerarchia).

    set folder=imap[s]://imap.server.domain[:port]/[folder/]

Non è necessario utilizzare una cartella, ma potrebbe essere conveniente se si dispone di tutte le altre cartelle all'interno di Posta in arrivo, per esempio. Qualunque cosa venga impostata qui come cartella, sarà accessibile in seguito con Mutt con tramite il solo un segno di uguale (=). Esempio:

    set folder=imaps://imap.gmail.com/

##### spoolfile

È ora possibile utilizzare "=" or "+" come una sostituzione per l'intero percorso cartella che è stato configurato in precedenza. Per esempio:

    set spoolfile=+INBOX

##### caselle postali

Tutte le cartelle imap che dovrebbero essere controllate regolarmente per la nuova posta devono essere elencate qui:

    mailboxes =INBOX =family
    mailboxes imaps://imap.gmail.com/INBOX imaps://imap.gmail.com/family

In alternativa, controllare tutte le cartelle IMAP sottoscritte (come se fossero state tutte aggiunte con una linea di `mailboxes`):

    set imap_check_subscribed

Queste due versioni sono equivalenti, ma la prima è molto più conveniente. Inoltre, le versioni più recenti di Mutt sono configurate di default per includere una macro associata al tasto "y", che permetterà di modificare ognuna delle cartelle elencate nelle caselle postali.

##### Riepilogo

Utilizzando queste opzioni, sarete in grado di avviaare mutt, inserire la password IMAP, e iniziare a leggere la posta. Ecco un frammento muttrc (per Gmail) con l'aggiunta di alcune ulteriori righe per un migliore supporto IMAP.

    set folder      = imaps://imap.gmail.com/
    set imap_user   = your.username@gmail.com
    set imap_pass   = your-imap-password
    set spoolfile   = +INBOX
    mailboxes       = +INBOX

    # store message headers locally to speed things up
    set header_cache = ~/.mutt/hcache

    # specify where to save and/or look for postponed messages
    set postponed = +[Gmail]/Drafts

    # allow mutt to open new imap connection automatically
    unset imap_passive

    # keep imap connection alive by polling intermittently (time in seconds)
    set imap_keepalive = 300

    # how often to check for new mail (time in seconds)
    set mail_check = 120

#### Supporto esterno IMAP

La funzionalità IMAP incorporata in Mutt, non scarica la posta in modalità offline. L'articolo OfflineIMAP descrive come scaricare le email in una cartella locale per essere elaborate in seguito da Mutt.

Considerare l'utilizzo di applicazioni come spamassassin o imapfilterAUR per smistare la posta.

### POP3

Recupero e smistamento della posta con applicazioni esterne

#### Ricevere la posta

Create la directory `~/.getmail/`. Aprite il file `~/.getmail/getmailrc` con l'editor di testo preferito.

Ecco un esempio di `getmailrc` usato con un account gmail.

    [retriever]
    type = SimplePOP3SSLRetriever
    server = pop.gmail.com
    username = username@gmail.com
    port = 995
    password = password

    [destination]
    type = Maildir
    path = ~/mail/

Potete reperire queste informazioni dalle specifiche del vostro fornitore del servizio POP3.

Molti utenti potranno ritenere utile aggiungere queste righe a `getmailrc` per prevenire il fatto che le mail vengano scaricate tutte ogni qualvolta che getmail viene eseguito.

    [options]
    read_all = False

Come si può vedere `~/.getmail/getmailrc` contiene informazioni sensibili (in particolare, le password degli account e-mail in formato testo). Sarebbe buona norma cambiare le autorizzazioni di accesso alla directory in modo che solo il proprietario possa vederle:

    $ chmod 700 ~/.getmail

Per questa guida memorizzeremo la nostra posta nel formato `maildir`. I due principali formati di mailbox sono `mbox` and `maildir`. La principale differenza fra i due formati è che `mbox` è un file, con tutti i vostri messaggi di posta e le loro intestazioni memorizzati lì, mentre una `maildir` è una directory. Ogni messaggio di posta è un file.

Una `maildir` è una cartella con all'interno le cartelle `cur`, `new` e `tmp`.

       mkdir -p ~/mail/{cur,new,tmp}

Avviate getmail. Se funziona, potete creare un cronjob (un comando mandato in esecuzione da `crontab`) per mandare in esecuzione getmail ogni tot ore/minuti. Date da terminale il comando `crontab -e` per editare cronjob, e scrivete:

     */10 * * * * /usr/bin/getmail

`getmail` verrà eseguito ogni 10 minuti.

Inoltre, per ridurre l'output di getmail, è possibile ridurne verbosità a zero aggiungendo quanto segue a: `getmailrc`:

    [options]
    verbose = 0

##### Vari account e-mail con getmail

Per impostazione predefinita, quando si esegue `getmail` il programma cerca i file creati da getmailrc come visto sopra. Se si dispone di più di un account di posta elettronica dai quali si desidera ricevere posta, allora si può creare un file per ogni indirizzo e-mail, e poi istruire getmail ad eseguirli entrambi. Ovviamente avendo due account e due file non si possono avere entrambi in sincronizzazione con getmailrc. Quello che si può fare è dare loro due nomi diversi, prendendo spunto da questo esempio: chiamiamo uno "personale" e uno "universitario". Questi due file contengono contenuti pertinenti alla posta personale, ed alla posta di lavoro universitario, rispettivamente. Per far funzionare getmail con questi due file, invece di cercare getmailrc (default), si può usare l'opzione rcfile switch in questo modo: `getmail --rcfile university --rcfile personal`, che può operare con più file se si dispone di più account di posta, basta assicurarsi che ogni file sia nella cartella getmail, e assicurarsi di modificare il crontab per eseguire il comando con le opzioni --rcfile. Esempio:

     */30 * * * * /usr/bin/getmail --rcfile university --rcfile personal

Ovviamente è possibile chiamare i propri file come si preferisce, provvedendo ad includerli in cronjob o nei comandi da shell, e sistemandoli nella cartella .getmail/. Getmail scaricherà la posta da questi due accounts.

#### Smistare la posta

Procmail è uno strumento di smistamento estremamente potente. Per lo scopo di questo wiki, imposteremo alcune regole di smistamento per cominciare.

Bisogna editare getmailrc per passare a procmail i messaggi di posta ricevuti:

    [destination]
    type = MDA_external
    path = /usr/bin/procmail

Ora, aprite `.procmailrc` nel vostro editor di testo preferito. Le righe che seguono smisteranno la mailing list di happy-kangaroos , e tutta la posta del vostro amico del cuore nelle rispettive maildir.

    MAILDIR=$HOME/mail
    DEFAULT=$MAILDIR/inbox/
    LOGFILE=$MAILDIR/log

    :0:
    * ^To: happy-kangaroos@nicehost.com
    happy-kangaroos/

    :0:
    * ^From: loveydovey@iheartyou.net
    lovey-dovey/

Dopo aver salvato il vostro `.procmailrc`, avviate getmail e vedete se procmail riesce a a smistare la posta nelle directory giuste.

Nota: Un modo per ottenere errori con .procmailrc sono i permessi. Procmail richiede i permessi 644 e produrrà notevoli messaggi d'errore senza.

### Maildir

Maildir è un formato generico e standardizzato. Quasi tutti i MUA sono in grado di gestire il supporto Maildir, e Mutt in questo è eccellente. Ci sono solo alcune semplici cose da fare per consentire a Mutt di usarlo. Aggiungere le seguenti righe a muttrc:

    set mbox_type=Maildir
    set folder=$HOME/Mail
    set spoolfile=+/INBOX
    set header_cache=~/.hcache

Si tratta di una configurazione minima che permette di accedere al proprio Maildir e controllare le nuove mail locali in INBOX. Questa configurazione memorizza anche le intestazioni delle email per accelerare l'elenco della directory. Potrebbe non essere abilitato nel proprio build (ma lo è sicuramente nel pacchetto Arch). Si noti che questo non influisce in alcun modo su OfflineIMAP, e sincronizza sempre tutte le directory su un server. `spoolfile` istruisce Mutt su quali directory locali eseguire il polling per le nuove mail. È possibile aggiungere ulteriori spoolfiles (ad esempio la directory di mailing-list) e magari anche altre cose, ma questo è consultabile sul manuale di Mutt e non è lo scopo di questo documento.

### SMTP

Indipendentemente che si utilizzi POP o IMAP per ricevere la posta, sarà probabilmente ancora possibile inviare una mail utilizzando il protocollo SMTP.

#### Utilizzare il supporto nativo SMTP

La versione Mutt di pacman è compilata con il supporto SMTP. Basta controllare il manuale online muttrc, o `man muttrc` per ulteriori informazioni.

Per esempio:

    set my_pass='mysecretpass'
    set my_user=myname@gmail.com

    set smtp_url=smtps://$my_user:$my_pass@smtp.gmail.com
    set ssl_force_tls = yes

#### Supporto esterno SMTP

È possibile utilizzare un SMTP esterno come msmtp o SSMTP. Questa sezione riguarda esclusivamente la configurazione di Mutt per msmtp.

Modificare file di configurazione di Mutt o crealo se non esistente:

    muttrc

    set realname='Disgruntled Kangaroo'

    set sendmail="/usr/bin/msmtp"

    set edit_headers=yes
    set folder=~/mail
    set mbox=+mbox
    set spoolfile=+inbox
    set record=+sent
    set postponed=+drafts
    set mbox_type=Maildir

    mailboxes +inbox +lovey-dovey +happy-kangaroos

Ora avviare `mutt`:

    $ mutt

Si dovrebbe vedere tutta la posta in `~/mail/inbox`. Premere `m` per comporre mail; verrà utilizzato l'editor definito dalla variabile d'ambiente `EDITOR`. Se questa variabile non è impostata, digitare:

    $ export EDITOR=editorbin

A fini di test, indirizzare la lettera a se stessi. Dopo aver scritto la lettera, salvare e uscire dall'editor. Si torna a Mutt, che ora mostra le informazioni sull'e-mail. Premere `y` per inviarlo.

## Personalizzazione

Guide per iniziare con l'utilizzo e la personalizzazione di Mutt:

- My first mutt (gestito da Bruno Postle)
- The Woodnotes Guide to the Mutt Email Client (gestito da Randall Wood)

In caso di domande specifiche su Mutt, non esitare a chiedere nel canale irc.

### Stampa

È possibile installare muttprintAUR da AUR per una migliore qualità di stampa. Nel file muttrc, inserire:

    set print_command="/usr/bin/muttprint %s -p {PrinterName}"

### Blocco firma

Creare un .signature nella cartella home. La propria firma verrà aggiunta alla fine dell'e-mail.

#### Firma random

È possibile utilizzare fortune per aggiungere una firma casuale a mutt.

    $ pacman -S fortune-mod

Creare un file fortune e quindi aggiungere la seguente riga al muttrc:

    set signature="fortune pathtofortunefile|"

Si noti la pipe finale. Questa fa si che mutt interpreti tale stringa non come un file, ma come un comando.

### Visualizzazione URL e apertura di Firefox

Si dovrebbe iniziare creando una directory .mutt in $HOME se non è ancora stato fatto. Una volta lì, creare un file denominato macros. Inserire le seguenti:

     macro pager \cb <pipe-entry>'urlview'<enter> 'Follow links with urlview'

Ora installare urlviewAUR da AUR.

Creare un .urlview in $HOME ed inserire il seguente:

    REGEXP (((http|https|ftp|gopher)|mailto)[.:][^ >"\t]*|www\.[-a-z0-9.]+)[^ .,;\t>">\):]
    COMMAND firefox %s

Quando si legge un'email sul pager, premendo ctrl + b verranno elencati tutti gli URL dall'e-mail. Navigare su o in giù con i tasti freccia e premere Invio sull'URL desiderata. Firefox si avvierà sul sito selezionato.

- Note - Se si hanno dei problemi con urlview a causa dell'encoding url di Mutt si può provare extract_url.pl

- Note - Per vedere una breve anteprima contestuale del contenuto di ogni URL, provare urlscan. La macro nel file muttrc è lo stesso che per urlview (tranne che per il comando "urlscan"). Non vi è alcuna configurazione aggiuntiva richiesta oltre le impostazioni del $BROWSER.

### Mutt e Vim

- Per limitare la larghezza del testo a 72 caratteri, modificare il proprio file .vimrc e aggiungere:

    au BufRead /tmp/mutt-* set tw=72

- Un'altra possibilità è quella di utilizzare il plugin di Vim "mail filetype" per attivare altre opzioni per le email e la larghezza a 72 caratteri. Modificare `~/.vim/filetype.vim`, creandolo se inesistente, e aggiungere:

    augroup filetypedetect
      " Mail
      autocmd BufRead,BufNewFile *mutt-*              setfiletype mail
    augroup END

- Per impostare una diversa directory tmp, per esempio ~/.tmp, aggiungere una riga a muttrc come segue:

    set tmpdir="~/.tmp"

- Per riformattare un testo modificato consultare la guida contestuale di Vim

    :h 10.7

### Visualizzazione HTML all'interno delle impostazioni Vim/Mutt

È possibile passare la consistenza HTML ad un programma esterno e poi scaricarlo, mantenendo la visualizzazione della posta elettronica uniforme e non invadente. Due programmi sono descritti qui: lynx and w3m.

Installare lynx o w3m:

    pacman -S lynx

o

    pacman -S w3m

Se ~/.mutt/mailcap non esiste, sarà necessario crearlo e aggiungere le seguenti righe:

    text/html; lynx -display_charset=utf-8 -dump %s; nametemplate=%s.html; copiousoutput

o, nel caso di w3m,

    text/html; w3m -I %{charset} -T text/html; copiousoutput;

Modificare muttrc e aggiungere la seguente:

    set mailcap_path 	= ~/.mutt/mailcap

Per aprire automaticamente i messaggi HTML in lynx, aggiungere questa riga aggiuntiva a muttrc:

    auto_view text/html

La bellezza di questo è che invece di visualizzare il formato HTML come sorgente, o essere aperto da un programma separato, in questo caso lynx, viene analizzato da Vim come HTML, ed i collegamenti URL nella email possono essere visualizzati con CTRL + b.

Se si ricevono molte email in formato di codifica diversi, mutt le considererà di default come html. Per evitare questo, aggiungere la seguente variabile al proprio `~/.muttrc`, che imposta il default di mutt su "text", mentre se i contenuti sono html, viene usato w3m/lynx:

    alternative_order text/plain text/html

### Mutt e GNU nano

nano è un altro editor da console piacevole da usare con Mutt.

Per limitare la larghezza del testo di 72 caratteri, modificare il file .nanorce ed aggiungere:

     set fill 72

Inoltre, nel file muttrc è possibile specificare la riga dove modificare, in modo che si ignori l'intestazione mail:

     set editor="nano +7"

### Colori

Aggiungere definizioni di colore d'esempio al file .muttrc:

    $ cat /usr/share/doc/mutt/samples/colors.linux >> ~/.muttrc

Quindi regolare a proprio piacimento.

I colori così impostati coincideranno con quelli nel file `~/.Xresources`

## Suggerimenti

### Utilizzo di Mutt per inviare mail da riga di comando

Le pagine man mostreranno tutti i comandi disponibili e come usarli, ma qui ci sono un paio di esempi. Si potrebbe utilizzare Mutt per inviare avvisi, log o altre informazioni di sistema, attivate dal login tramite .bash_profile, o come un normale cron job.

Inviare un messaggio:

    mutt -s "Subject" somejoeorjane@someserver.com < /var/log/somelog

Invia un messaggio con allegato:

    mutt -s "Subject" -a somefile somejoeorjane@someserver.com < /tmp/sometext.txt

### Come visualizzare un'altra e-mail mentre si compone

Un problema comune con Mutt è che durante la composizione di una nuova mail (o risposta), non è possibile aprire un'altra mail (ad esempio per il controllo con un'altro corrispondente) senza chiudere la posta corrente (rinvio). La sezione seguente descrive una soluzione:

In primo luogo, avviare Mutt come al solito. Quindi, lanciare un'altra finestra del terminale. Ora avviare Mutt con

    mutt -R

Ciò avvia Mutt in modalità di sola lettura, ed è possibile sfogliare le altre email a proprio piacimento. Si consiglia vivamente di lanciare sempre un secondo Mutt in modalità di sola lettura, altrimenti potrebbero insorgere facilmente alcuni conflitti.

Ora, questa soluzione richiede parecchia battitura, per cui sarebbe utile automatizzare un po'. Quanto segue funziona con Awesome, per altri WM o DE, simili soluzioni sono probabilmente disponibili: cercare su google come aggiungere le scorciatoie da tastiera, e rendere eseguibili le scorciatoie desiderate

    $TERM -e mutt -R

dove $TERM è il proprio terminale.

Come per Awesome: editare il proprio rc.lua, e aggiungere il seguente su una delle prime righe, dove terminal = "yourTerminal", ecc.

    mailview = terminal .. " -e mutt -R"

Questo utilizza automaticamente il terminale preferito, ".." è la concatenazione in Lua. Si noti lo spazio prima di -e.

Quindi, aggiungere il seguente all'interno di --{{{ Key bindings

    awful.key({ modkey,           }, "m", function() awful.util.spawn(mailview) end),

Omettere la virgola finale se questa è l'ultima riga. È possibile, naturalmente usare un'altra chiave diversa da "m". Ora, salvare e uscire, e controllare la sintassi con

    awesome -k

Se è tutto a posto, riavviare awesome e fare una prova!

Ora, un esempio di utilizzo: Lanciare mutt come di solito. Incominciare una nuova mail, poi premere "Mod4"+"m". Questo apre la casella di posta elettronica in un nuovo terminale, dove si può navigare e leggere altre e-mail. Ora, un accurato bonus: uscire da questa sessione di Mutt in sola lettura con "q", e la finestra di terminale creata scomparirà!

### Mutt-Sidebar

Il pacchetto mutt-sidebarAUR[broken link: package not found] disponibile su AUR contiene una patch per avere la lista delle cartelle in una colonna a sinistra della finestra di mutt.

Per ogni informazione visitare l'homepage dello sviluppatore qui.

## Vedere anche

- The official Mutt website
- The Mutt wiki
- Brisbin's great guide on how to setup different IMAP accounts with mutt + offlineimap + msmtp
- Documentation on Configuring Getmail with rcfiles

Category:

- Email clients (Italiano)

Hidden category:

- Pages with broken package links