di AAAle
NB: Questa guida è in realtà un aggiornamento di Mutt + Fetchmail + Procmail + Msmtp, scritta sempre da AAAle. Ho preferito postarla come nuova perché questa usa muttng mentre l'originale era su mutt
Muttng è un programma per la gestione della posta elettronica completamente testuale e personalizzabile come un qualsiasi client a interfaccia grafica (KMail, Evolution, Sylpheed ecc). Più precisamente è un fork di Mutt con delle funzionalità aggiuntive niente male.
A differenza degli altri, non possiede una gestione smtp / pop3 integrata nel software stesso quindi bisogna appoggiarsi a dei programmi esterni, nel nostro caso fetchmail + procmail (per la gestione POP3) e msmtp (per la gestione SMTP).
A qesto aggiungiamo la ciliegina sulla torta filtrando tutte le mail in entrata con spamassassin (anti-spam) e clamav (anti-virus)
Supponendo che i programmi citati siano già installati (vedete voi se usare il vostro gestore di pacchetti preferito o compilare dai sorgenti) iniziamo la nostra avventura all’uso di Muttng.
Fetchmail:
Fetchmail permette di reperire le nostre e-mail da un mailserver remoto e salvarle nel nostro pc locale.
La configurazione è molto semplice, per prima cosa creiamo il file di configurazione .fetchmailrc nella nostra home e diamogli i permessi 710.
aaale@Nebula ~ $ touch .fetchmailrc
Ora editiamo il file:
aaale@Nebula ~ $ chmod 710 .fetchmailrc
aaale@Nebula ~ $ vim .fetchmailrc
Inseriamo il seguente codice:
poll indirizzo_server_pop3 uidl protocol pop3 user "nome_utente" password "tua_password" is 'tuo_utente_unix' options keep
Ovviamente se abbiamo più indirizzi di posta basta aggiungere una riga opportunamente modificata sotto a quella già esistente.
Analizziamo a fondo ogni passo:
poll: Inizializza una chiamata ad un server
indirizzo_server_pop3: Indirizzo del server pop3 (ad esempio box.tin.it)
uidl: Controlla se le e-mail presenti sul server sono già state scaricate, in caso negativo le scarica altrimenti non compie nessuna operazione
protocol pop3: Specifica il tipo di protocollo da usare per contattare il mailserver
user “nome_utente”: Il nome utente per l’autentificazione
“tua_password”: La password per l’autentificazione
is ‘tuo_utente_unix’: Salva le mail nella directory di spool dell’utente unix con cui siete loggati
options keep: Mantiene le mail sul server
ATTENZIONE: se avete un account Virgilio o Tin (probabilmente Libero o anche Tiscali non ho mai provato), necessitano dell’autenticazione cram-md5 quindi aggiungiamo i seguenti parametri alla riga di configurazione di .fetchmailrc
poll indirizzo_server_pop3 uidl protocol pop3 auth cram-md5 auth password user “nome_utente” password “tua_password” is ‘tuo_utente_unix’ options keep
Per account Gmail usare la seguente riga:
poll pop.gmail.com with proto POP3 and options no dns
Procmail:
user 'nome_utente@gmail.com' password 'tua_password' is 'tuo_utente_unix' here options ssl
Procmail permette lo smistamento delle e-mail in locale
Con qualche piccolo trucco può interagire con spamassassin e clamav per il filtraggio delle mail.
Anche in questo caso la configurazione è intuitiva e semplice e si inizia col creare il file .procmailrc nella home del nostro utente
aaale@Nebula ~ $ touch .procmailrc
Creiamo la directory Mail nella nostra home che conterrà le nostre mbox di posta
aaale@Nebula ~ $ mkdir Mail
Ora editiamo il file:
aaale@Nebula ~ $ vim .procmailrc
Inseriamo il seguente codice:
MAILDIR=$HOME/Mail
LOGFILE=$HOME/.procmaillog
:0fw: spamassassin.lock
| /usr/bin/spamc -f
:0
VIRUS=| clamdscan –no-summary –stdout – | cut -d’ ‘ -f2 –
:0
* VIRUS ?? !^OK
{
:0
SUBJECT=| egrep ‘^Subject:’ – | sed -e ‘s/Subject: //’ –
:0 fw
| formail -i”Subject: [ATTENZIONE!!! – VIRUS ALLEGATO ALLA MAIL by K3m0
: ${VIRUS}”> ${SUBJECT}”
}
:0:
* ^X-Spam-Flag: YES
spam
:0
* ^From:.*pippo@dominio1.com
! pluto@domain.it
:0
* ^From:.*pippo@dominio2.it
Pippo
:0
* ^From:.*ciccio@dominio3.com
Ciccio
:0
^Subject:.*Spam
Spam
:0
^Subject:.*Virus
/dev/null
:0
* .*
Inbox
Analizziamo a fondo ogni passo:
MAILDIR=$HOME/Mail : Il percorso dove verranno salvati i database di posta
LOGFILE=$HOME/.procmaillog : Salviamo il log in un file chiamato .procmaillog nella nostra home
Lasciamo il compito a spamassassin di controllare se la mail è considerata spam o meno attraverso i suoi metodi di filtro.
:0fw: spamassassin.lock
| /usr/bin/spamc -f
Lasciamo il compito a clamav di controllare se la mail contiene allegati pericolosi come worm o virus
:0
VIRUS=| clamdscan –no-summary –stdout – | cut -d’ ‘ -f2 –
:0
* VIRUS ?? !^OK
{
:0
SUBJECT=| egrep ‘^Subject:’ – | sed -e ‘s/Subject: //’ –
:0 fw
| formail -i”Subject: [ATTENZIONE!!! – VIRUS ALLEGATO ALLA MAIL
: ${VIRUS}”> ${SUBJECT}”
}
Tutte le mail provenienti da pippo@dominio1.com vengono inoltrate a pluto@domain.it
:0
* ^From:.*pippo@dominio1.com
! pluto@domain.it
Tutte le mail provenienti da pippo@dominio2.it vengono salvate nella casella chiamata Pippo (viene creata automaticamente)
:0
* ^From:.*pippo@dominio2.it
Pippo
Tutte le mail provenienti da ciccio@dominio3.com vengono salvate nella casella chiamata Ciccio (viene creata automaticamente)
:0
* ^From:.*ciccio@dominio3.com
Ciccio
Tutte le mail con il soggetto contentente la parola Spam vengono salvate nella mbox chiamata Spam (viene creata automaticamente)
:0
^Subject:.*Spam
Spam
Tutte le mail con il soggetto contentente la parola Virus vengono eliminate
:0
^Subject:.*VIRUS
/dev/null
Tutte le mail restanti vengono salvate nella casella chiamata Inbox (viene creata automaticamente)
:0
* .*
Inbox
ClamAV
Vi rimando al file di configurazione commentato per il corretto funzionamento:
Il primo riguarda il demone clam e il secondo per il comando freshclam
Entrambi si trovano in /etc/
Laciate freshclam per aggiornare le definizioni dei virus
aaale@Nebula ~ # freshclam
Spamassassin
Vi rimando al file di configurazione commentato per il corretto funzionamento:
E’ unico e si trova in /etc/spamassassin
Avviamo entrambi i demoni
aaale@Nebula ~ # /etc/init.d/spamd start
msmtp
aaale@Nebula ~ #/etc/init.d/clamd start
msmtp è un client SMTP che permette l’inoltro di una mail verso un server SMTP
Anche in questo caso la configurazione è intuitiva e semplice e si inizia col creare il file .msmtprc nella home del nostro utente
aaale@Nebula ~ $ touch .msmtprc
Ora editiamo il file:
aaale@Nebula ~ $ vim .msmtprc
Inseriamo il seguente codice:
host spacebase
Analizziamo a fondo ogni passo:
from mio_utente@miodominio.org
# Opzionale
user ciccio
password pasticcio
host 192.168.1.1: indirizzo ip o DNS del server SMTP
from mio_utente@miodominio.org: E-Mail di spedizione
In caso serva l’autentificazione per l’accesso al server SMTP inserire i seguenti dati
user ciccio: Utente per l’autentificazione
password pasticcio: Password per l’autentificazione
muttng
E finalmente configuriamo il nostro client di posta.
Si crea sempre il solito file nella nostra home questa volta chiamato .muttngrc
aaale@Nebula ~ $ touch .muttngrc
Ora editiamo il file:
aaale@Nebula ~ $ vim .muttngrc
Inseriamo il seguente codice:
set charset = utf-8 # impostazioni per utf-8
set config_charset = utf-8 # impostazioni per utf-8
set assumed_charset = utf-8 # impostazioni per utf-8
set pager_context=1
set pager_index_lines=6 #mostra un mini-indice nel pager
set menu_scroll
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/msmtp” # Il percorso dell’eseguibile per spedire le mail al server SMTP
set from=”aaalekemo@gmail.com” #imponi il tuo campo from
set realname=”Alessandro Bianco”
#Inserisci il nome vero
set record=”Mail/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 “+” quoando vai a capo
set confirmappend=no #no prompt for save to =keep
set to_chars=” +TCF” #niente “L” per mail_list
set folder = “~/Mail” # la directory contenente le mailboxes
bind pager h display-toggle-weed #fai vedere gli header con il tasto h
#Visualizzo i possibili URL presenti in una mail premendo ctrl + b macro pager \cb ‘urlview’ ‘Follow links with urlview’
#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
##Muttng deve avere qualche colore
##questi sono per quattro livelli di testo quotato
##vengono sovrascritte le impostazioni di sistema
#color quoted green default
color quoted1 magenta blue
#color quoted2 yellow default
#color quoted3 red default
#color signature cyan cyan
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
set signature = “~/.signature” # firma salvata nel file di testo
set sidebar_visible=”yes” # La barra laterale è visibile
set sidebar_width=25 # larghezza barra laterale
color sidebar_new red black # colore sfondo e testo per una nuova mail
color sidebar red blue # colore sfondo e test default
bind index \Cp sidebar-prev # ctrl + p sposta alla mbox precedente
bind index \Cn sidebar-next # ctrl + n sposta alla mbox successiva
bind index \Co sidebar-open # ctrl + o apre la mbox
# Le nostre mbox
mailboxes Mail/Inbox Mail/spam Mail/lugvi Mail/dri Mail/gwn Mail/SentFinalmente… dopo molto lavoro tutto è configurato al meglio e adesso prepariamoci al divertimento.
Scarichiamo la posta:
aaale@Nebula ~ $ fetchmail -m "/usr/bin/procmail -d %T"
Apriamo Muttng leggendo le mail presenti nella Inbox
aaale@Nebula ~ $ muttng -f Mail/Inbox
Velocemente accenno che premendo:
m si scrive una nuova mail
r rispondi ad una mail
d si cancella una mail
invio si legge la mail
h si visualizza l’header della mail
y si spedisce la mail
c si cambia la mailbox e successivamente ? per vedere la lista
$ aggiornare la mailbox
Suggerimenti
Per scaricare la posta in automatico ogni certo tot di tempo (ad esempio 5 minuti) consiglio l’installazione di un demone cron.
Un buon tutorial può essere trovato al seguente indirizzo: http://www.gentoo.org/doc/it/cron-guide.xml
Ora analizziamo come aprire gli allegati di posta e come visualizzare gli URL che potrebbero essere presenti in una mail.
Per far ciò, abbiamo bisogno di creare un file .mailcap nella nostra home e di installara una utility per muttng chiamata urlview.
aaale@Nebula ~ $ touch .mailcap
Editiamo il file:
aaale@Nebula ~ $ vim .mailcap
Inseriamo il seguente codice:
application/vnd.sun.xml.writer; soffice %s
In poche parole apro qualsiasi tipo di documento con OpenOffice mentre nell’ultima riga apro qualsiasi immagine con il comando display incluso nella suite Imagemagick.
application/vnd.sun.xml.writer.global; soffice %s
application/vnd.stardivision.writer; soffice %s
application/vnd.stardivision.writer-global; soffice %s
application/x-starwriter; soffice %s
application/vnd.sun.xml.writer.template; soffice %s
application/msword; soffice %s
application/vnd.sun.xml.calc; soffice %s
application/vnd.stardivision.calc; soffice %s
application/x-starcalc; soffice %s
application/vnd.sun.xml.calc.template; soffice %s
application/excel; soffice %s
application/msexcel; soffice %s
application/vnd.ms-excel; soffice %s
application/x-msexcel; soffice %s
application/vnd.sun.xml.impress; soffice %s
application/vnd.stardivision.impress; soffice %s
application/vnd.stardivision.impress-packed; soffice %s
application/x-starimpress;/home/aaale/OpenOffice.org1.1.4/soffice %s
application/vnd.sun.xml.impress.template; soffice %s
application/powerpoint; soffice %s
application/mspowerpoint; soffice %s
application/vnd.ms-powerpoint; soffice %s
application/x-mspowerpoint; soffice %s
application/vnd.sun.xml.draw; soffice %s
application/vnd.stardivision.draw; soffice %s
application/x-stardraw; soffice %s
application/vnd.sun.xml.draw.template; soffice %s
application/vnd.sun.xml.math; soffice %s
application/vnd.stardivision.math; soffice %s
application/x-starmath; soffice %s
image/*; display %s
Salve veramente un ottimo how to, l’unico problema riguarda i file di clamav e spamassassin in quanto il dominio http://spacebase.homelinux.org mi risulta irraggiugibie, posso reperirli altrove? Grazie
Ciao!
fetchmail -d 600
dovrebbe scaricare la posta ogni 600 secondi :))
Grazie per i suggerimenti, purtroppo l’how to è un pochetto datato ma ancora funzionante.
Il dominio spacebase.homelinux.org non esiste più e con esso sono andati persi i file di configurazione.
Vedo di integrare il più presto possibile anche se nei commenti dei rispettivi file di conf originali si possono trovare tutte le informazioni a riguardo.