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. |
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.
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.
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.
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.
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 |
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.
I contenuti di questo documento sono rilasciati sotto la licenza Creative Commons - Attribution / Share Alike.