Menu Chiudi

Muttng, ovvero la posta su terminale

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
aaale@Nebula ~ $ chmod 710 .fetchmailrc
Ora editiamo il file:

aaale@Nebula ~ $ vim .fetchmailrcInseriamo il seguente codice:

poll indirizzo_server_pop3 uidl protocol pop3 user "nome_utente" password "tua_password" is 'tuo_utente_unix' options keepOvviamente 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
user 'nome_utente@gmail.com' password 'tua_password' is 'tuo_utente_unix' here options ssl
Procmail:

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 .procmailrcCreiamo la directory Mail nella nostra home che conterrà le nostre mbox di posta

aaale@Nebula ~ $ mkdir MailOra editiamo il file:

aaale@Nebula ~ $ vim .procmailrcInseriamo 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/

clamd.conf
freshclam.conf

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

local.cf.conf

Avviamo entrambi i demoni

aaale@Nebula ~ # /etc/init.d/spamd start
aaale@Nebula ~ #/etc/init.d/clamd start
msmtp

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 .msmtprcOra editiamo il file:

aaale@Nebula ~ $ vim .msmtprcInseriamo il seguente codice:

host spacebase
from mio_utente@miodominio.org
# Opzionale
user ciccio
password pasticcio
Analizziamo a fondo ogni passo:

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 .muttngrcOra editiamo il file:

aaale@Nebula ~ $ vim .muttngrcInseriamo 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/InboxVelocemente 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 .mailcapEditiamo il file:

aaale@Nebula ~ $ vim .mailcapInseriamo il seguente codice:

application/vnd.sun.xml.writer; soffice %s
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
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.

3 commenti

  1. AAAle

    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.

Rispondi

%d blogger hanno fatto clic su Mi Piace per questo:
Vai alla barra degli strumenti