Gentoo Logo

Guida rapida all'uso di Mutt

Indice:

1.  Introduzione all'E-Mail

Se non siete fan dei client e-mail con interfacce grafiche elaborate, o se volete soltanto provare un altro client di posta elettronica prima di decidere qual'è il migliore per voi, ecco il modo per iniziare ad utilizzare questi potenti strumenti a linea di comando:

fetchmail, procmail, mutt & smtp

Questi programmi non sono solo potenti e altamente personalizzabili, ma sono anche piccoli ed efficenti. Una volta che li avrete configurati sarete sbalorditi da quello che potrete farci.

Dato che questa è una guida veloce, elimineremo l'uso dei "Mail Transfer Agent (MTA)" quali sendmail, postfix o exim. Questo significa evitare complesse configurazione degli MTA. Questa scelta elimina, inoltre, l'uso della porta 25 per i servizi legati all'email

Possiamo fare tutto questo perché fetchmail può ridirigere la mail che recupera direttamente al "Mail Delivery Agent (MDA)", invece di mandarla alla porta 25. Non è nemmeno necessario utilizzare un MTA per la spedizione della posta elettronica verso INTERNET.

Questi sono i programmi che dovrete utilizzare per avere il sistema di posta elettronica funzionante.

Codice 1.1: Installare le applicazioni richieste

# emerge fetchmail nbsmtp procmail mutt

E adesso qualche configurazione e alla fine avrete funzionante un nuovo sistema per l'invio e la ricezione della posta elettronica.

Importante: Dopo ogni configurazione potete fare un test per essere sicuri che la configurazione fatta sia corretta.

2.  Fetchmail

Fetchmail prende la mail dai server remoti e la redirige al local delivery system installato sulla macchina. Per utilizzarlo è necessario configurare un file .fetchmailrc posizionato nella propria home directory, come in questo esempio:

Codice 2.1: Esempio di file .fetchmailrc

poll mail.myisp.net  protocol pop3 user "myname" password "mypasswd"

Una volta creato il file .fetchmail.rc, dovrete cambiare i permessi sul file utilizzando il comando chmod. Questo file deve essere leggibile solo dal proprietario del file stesso. Impostate i permessi utilizzando il seguente comando:

Codice 2.2: Modificare i permessi

$ chmod 600 .fetchmailrc

Per vedere fetchmail in azione, usate la modalità "verbose". Per scaricare tutti i messaggi utilizzate l'opzione -a. Dovete utilizzare l'opzione -m per dire a fetchmail di mandare la mail al procmail.

Avvertenza: Mentre siete nella fase di test, è una buona idea dire a fetchmail di mantenere tutta la mail sul server remoto (attraverso l'opzione -k), nel caso qualcosa vada storto, potrete recuperare nuovamente la mail.

Ora lanciate fetchmail per vederlo in azione!

Codice 2.3: Fetchmail test #1

$ fetchmail -akv -m "/usr/bin/procmail -d %T"

Una volta che il vostro sistema è funzionante, potete inserire il comando nel cron o metterlo in un monitor come gkrellm. Fetchmail, può anche funzionare come un demone, specificando un intervallo di tempo (in secondi) per il controllo della posta.

3.  Procmail

Procmail è il processore che filtra le email che gli vengono redeirette da fetchmail. Esegue la funzionalità di MDA per consegnare la mail alle vostre mailbox, dalle quali mutt (il vostro client di posta elettronica) le potrà leggere.

Per utilizzare procmail, è necessario creare un file .procmailrc nella vostra home directory. Per la nostra guida "veloce" ne utilizzeremo uno molto semplice che filtrerà la posta proveniente da tre mailing list di gentoo e ne metterà le email in tre mailbox: gentoo-dev, gentoo-user e gentoo-announce.

Nota: I filtri di procmail vengono chiamati "ricette", ne sono state inserite alcune per filtrare del possibile spam.

Codice 3.1: Sample .procmailrc

MAILDIR=$HOME/MuttMail                ##meglio sapere che c'è
LOGFILE=$HOME/.procmaillog
LOGABSTRACT=no
#VERBOSE=on... suggerito solo in caso di debug
VERBOSE=off
FORMAIL=/usr/bin/formail
NL="
"
##le linee delle ricette inziano con :0
##non mettete commenti sulle linee delle ricette
##disabilitate le ricette inserendo una condizione di "FALSE" !
##le linee delle condizioni iniziano con un * e le espressioni regolari
##sono vostre amiche
##le condizioni sono concatenate con un "and" logico e tutto ciò che viene
##messo dopo un * viene dato in pasto direttamente ad un egrep
##una linea delle azioni segue le condizione, in questo caso è stato
##inserito il nome di una mailbox

#trova i duplicati utilizzando formail
:0 Whc: .msgid.lock
| $FORMAIL -D 16384 .msgid.cache

:0 a
$MAILDIR/duplicates

#gente dalla quale vogliamo sempre ricevere email
:0
* ^From:.*(craig\@hotmail|renee\@local.com)
$MAILDIR/friends

#adesso togliamo un po' di spam
:0
* ^Subject:.*(credit|cash|money|debt|sex|sale|loan)
$MAILDIR/spam

#non voglio mail in HTML
:0
* ^Content-Type:.*html
$MAILDIR/junk

#mettiamo le mailing list nelle mailbox
:0
* ^List-Id:.*gentoo-user
gentoo-user

:0
* ^List-Id:.*gentoo-dev
gentoo-dev

:0
* ^List-Id:.*gentoo-announce
gentoo-announce

#trova tutte le email che vengono da gentoo
:0
* ^From:.*gentoo.org
gentoo

:0
* ^From:.*@freshmeat\.net
freshmeat

################################
# ultima regola: tutte le mail  #
# che non rientrano nelle altre #
# regole finiscono nella inbox  #
################################
:0
* .*
default

# Fine del file

Nota: È necessario creare solo la MAILDIR $HOME/MuttMail, sarà Procmail a creare tutti i file di mailbox necessari in questa directory utilizzando i nomi contenuti nelle linee delle azioni. Per trovare alcuni link utili visitate http://www.procmail.org/.

Adesso potete testare il file .procmailrc rilanciando il comando fetchmail che abbiamo utilizzato precedentemente. Ricordate l'opzione -k per mantenere la posta sul server remoto, in questo modo, la potremo recuperare se ci servirà nuovamente

Codice 3.2: Procmail test #1

$ fetchmail -akv -m "/usr/bin/procmail -d %T"

Adesso che fetchmail e procmail funzionano, andate nella directory $HOME/MuttMail e leggete i vostri messaggi attraverso less o attraverso il vostro file manager.

4.  Il client email Mutt

Mutt è utilizzato per leggere e comporre email. È potente e molto personalizzabile ma è anche piccolo ed efficiente.

Mutt supporta la lettura e la scrittura di quattro formati differenti di mailbox: mbox, MMDF, MH e Maildir. Il tipo di mailbox da utilizzare è rilevato automaticamente. Nel nostro caso utilizziamo il formato mbox, dove tutti i messaggi di una mailbox sono memorizzati in un singolo file.

Mutt può anche operare con delle cartelle posizionate su un server IMAP remoto. Si veda "Supporto IMAP" nella sezione 4.11 del manuale di Mutt all'indirizzo http://www.mutt.org/.

Durante l'installazione mutt crea un file di configurazione globale in /etc/mutt/Muttrc. È però necessario creare un'altro file di configurazione, .muttrc, nella propria home directory.

Codice 4.1: Esempio di .muttrc

(Assicuratevi di leggere il manuale di Mutt in /usr/share/doc/mutt*)
(Le impostazioni di questo file hanno la precedenza su quelle che si trovano in
/etc/mutt/Muttrc)

# cp /etc/mutt/Muttrc ~/.muttrc
# nano -w .muttrc
set pager_context=1
set pager_index_lines=6                 #mostra un mini-indice nel pager
set menu_scroll
set pgp_verify_sig=no                   #non mostrare il pgp nel pager
set status_on_top                       #metti la linea di stato in alto
set sort=threads                        #visualizza i messaggi per argomento nell'indice

set status_format=" %r %b %f %n      Del %d      Msgs %m %l %> (%P)"
set pager_format="%-10.10i %[!%a %b %d %R]"
set date_format="!%H:%M %a %d %b     "
set index_format="%4C %Z %[%b%d] %-15.15F %s"
set folder_format="%2C %t %8s %d %N %f"

#set sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f yourname@isp.net"

#set from="default-mailaddress"         #imponi il tuo campo from
#set realname="myname"

set record="$HOME/MuttMail/sent"        #le email inviate sono salvate qui
set delete=yes                          #cancella senza chiederlo
set include=yes                         #quota i messaggi alla risposta
set fast_reply=yes                      #non chiedere se devi rispondere
set beep=no                             #niente rumore
set markers=no                          #non aggiungere un "+" quando vai a capo
set confirmappend=no                    #non chiedere se aggiungere messaggi a mailbox esistente
set to_chars=" +TCF"                    #niente "L" per mail_list

set folder = $HOME/MuttMail
mailboxes =gentoo-user
mailboxes =gentoo-dev
mailboxes =gentoo-announce
mailboxes =gentoo
mailboxes =freshmeat
mailboxes =duplicates
mailboxes =default
mailboxes =friends
mailboxes =junk
mailboxes =spam
mailboxes =keep

save-hook .* =keep                      #la mbox di default per (s)alvare le mail è =keep
subscribe gentoo-user gentoo-dev        #iscritto a queste mailing list

bind pager h display-toggle-weed        #fai vedere gli header con il tasto h

# simula il vecchio menu delle url
macro index \cb |urlview\n 'call urlview to extract URLs out of a messagè
macro pager \cb |urlview\n 'call urlview to extract URLs out of a messagè

#esegui fetchmail premendo il tasto G
macro index G "!fetchmail -a -m 'procmail -d %T'\r"
macro pager G "!fetchmail -a -m 'procmail -d %T'\r"

#usato per editare .muttrc e quindi farne il source... non bisogna
#far ripartire mutt
macro generic ,sm ":source $HOME/.muttrc\r"
macro generic \cj "!rxvt -bg wheat -e joe $HOME/.muttrc\r"

#Questa è la lista degli header da togliere quando la mail viene
#visualizzata
ignore *
unignore  Date To From: Subject X-Mailer Organization User-Agent
hdr_order Date From To Subject X-Mailer User-Agent Organization

##Mutt deve avere qualche colore
##questi sono per quattro livelli di testo quotato
##vengono sovrascritte le impostazioni di sistema contenute in /etc/mutt/Muttrc

#color quoted green  default
color quoted1 magenta blue
#color quoted2 yellow default
#color quoted3 red default
#color signature cyan cyan


#Queste impostazioni di colori sono copiate da /etc/mutt/Muttrc.color
#commentatele se volete i colori di default contenuti in /etc/mutt/Muttrc
#Je vois la vie en rose :-)
color   hdrdefault  brightcyan  blue
color   header      brightwhite blue "^from:"
color   header          brightwhite     blue   "^subject:"

color   quoted          brightgreen     blue
color   signature       brightwhite blue

color   indicator       blue            green

color   error           red             black
mono    error           bold
color   status          black cyan
mono    status      bold
color   tree            yellow      blue

color   tilde           brightmagenta   blue
color   body    brightwhite     blue    "[-a-z_0-9.]+@[-a-z_0-9.]+"
mono    body    bold                    "[-a-z_0-9.]+@[-a-z_0-9.]+"
color   body            brightyellow    black   "^Good signature"
mono    body            bold                    "^Good signature"
color   body            brightwhite     red     "^Bad signature from.*"
mono    body            bold                    "^Bad signature from.*"
color   normal          white       blue
color   message     green   black
color   attachment  brightgreen blue

# fine del file...ma potrebbe andare avanti e avanti e avanti....:)

Per la cronaca, questo è semplicemente un esempio di .muttrc. Ci sono molte più opzioni che possono essere configurate, per esempio l'integrazione con GPG. Date un'occhiata a http://www.dotfiles.com/index.php?app_id=27 per vedere più esempi ed ottenere aiuto.

Adesso siete pronti per testare il vostro .muttrc.

Codice 4.2: Testare .muttrc

$ mutt -y

Questo dovrebbe aprire Mutt con un menu che mostra le mailbox che avete creato precedentemente quando avete lanciato il comando fetchmail.

Premete il tasto ? per informazioni sulla navigazione delle Mailbox in mutt.

5.  SMTP

Il passo finale consiste nel configurare nbsmtp il 'No-Brainer SMTP' usato per mandare mail al server SMTP del vostro provider. Questa configurazione è la più semplice di tutte, richiede solo di aggiungere una riga al vostro file .muttrc.

domain (dominio): il dominio a cui volete che nbsmtp dica di appartenere. Sarà quasi sempre identico a quello del vostro indirizzo di posta.

from@addr: questo è l'indirizzo di provenienza della mail che volete che nbsmtp annunci. Notate che questo indirizzo può essere diverso dal campo "From:" (Da) nel vostro Mail User Agent (in questo caso... Mutt).

host: Questo è il server SMTP a cui state mandando le email.

Codice 5.1: Aggiungere il supporto SMTP

$ nano -w .muttrc
set sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f urname@isp.net"

Adesso siete pronti per ricevere e mandare messaggi. Nel pager oppure nell'indice di mutt premete il tasto m e componete un messaggio di prova da mandare al vostro indirizzo di posta elettronica. Mutt utilizzerà il valore di EDITOR o quello di VISUAL per lanciare l'editor per la composizione del messaggio, questo nel caso non abbiate settato la variabile editor= nel file .muttrc. Quando avrete finito con la composizione del messaggio premete il tasto y per inviare il vostro messaggio. Se non ci sono errori apparirà il messaggio 'invio della posta in corso' seguito da 'Posta inviata'.

Ricordate che in .muttrc abbiamo impostato dove salvare la posta inviata con set record="$HOME/MuttMail/sent".

Adesso, per completare il test, eseguite di nuovo fetchmail per ricevere tutta la vostra posta e verificate se avete ricevuto il messaggio che avete appena spedito al vostro indirizzo. Quando trovate il vostro messaggio di prova premete il tasto h per visualizzare tutti gli header e vedere tutto il percorso di trasferimento seguito dalla vosta mail.

Nota: C'è probabilmente un altro programma che vorrete installare: urlview. Questo tool estrae gli URL dai messaggi di posta e li invia al vostro browser.

Codice 5.2: Installare urlview

# emerge urlview

create quindi il file ~/.urlview copiandolo da /usr/share/doc/urlview*/ e impostate il comando usato per lanciare il browser.

Adesso avete un potente ed altamente personalizzabile sistema di posta elettronica. Per sfruttarne al meglio la flessibilità si consiglia di leggere i manuali e la documentazione disponibile e di cercare sul web esempi di configurazione dei file .procmailrc e .muttrc.

6.  SMTP autenticati

Usare nbSMTP

Se il tuo server SMTP richiede l'autenticazione tramite 'nome utente' e 'password', devi modificare set sendmail nel file .muttrc includendo -U <nome utente> -P <password>, come in questo esempio:

Codice 6.1: Impostare 'nome utente' e 'password' per l'autenticazione SMTP

set sendmail="/usr/bin/nbsmtp -U nome utente -P password -d isp.net -h smtp.isp.net -f urname@isp.net"

Se preferisci che queste informazioni non siano presenti in .muttrc, puoi inserirle nel file .nbsmtprc (che va creato) in questo modo:

Codice 6.2: Esempio di ~/.nbsmtprc

auth_user = nome utente
auth_pass = password

Alternativa: usare msmtp

msmtp è una semplice alternativa a nbsmtp con funzionalità molto simili.

Codice 6.3: Installare msmtp

# emerge msmtp

Dopo aver effettuato il login come utente normale, per configurare msmtp è necessario inserire le impostazioni del server SMTP nel file ~/.msmtprc (che va creato). Ricordati di impostare i permessi di questo file in regime di sicurezza.

Codice 6.4: Configurare msmtp

$ nano -w .msmtprc
account default
host smtp.your_provider.net
from your_username@provider1.net
#consulta le pagine man per altre opzioni di auth
auth login
user your_username
password your_password
#se il tuo server SMTP supporta la crittografia TLS, togli il
commento a questa riga
#tls

Come già detto, si devono impostare i permessi del file in modo adeguato, in questo modo:

Codice 6.5: Impostare i permessi del file di configurazione

$ chmod 600 .msmtprc

Infine, aggiungi questa linea al file .muttrc:

Codice 6.6: Usare msmtp con Mutt

$ nano -w .muttrc
set sendmail="/usr/bin/msmtp"

Avvia mutt e inviati una email di prova per vedere se tutto funziona corretamente. Per altri esempi di configurazione consulta le pagine man di msmtp.



Stampa

Aggiornato il 17 settembre 2006

Oggetto: Questa guida mostra come iniziare ad usare gli strumenti per la consultazione delle email quali fetchmail, procmail, mutt, and nbsmtp.

Mike Polniak
Autore

Ken Nowack
Redazione

John Hitchings
Contributi

Davide Cendron
Traduzione

Donate to support our development efforts.

Support OSL

Support OSL

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Bytemark

Bytemark

Linux World Expo

Linux World Expo

Copyright 2001-2008 Gentoo Foundation, Inc. Questions, Comments? Contact us.