Senza perdere tempo configuriamo mutt per un utilizzo immediato in modo
da poter leggere ed inviare la posta nel minor tempo possibile.
Partiamo dal presupposto che abbiamo installato i
pacchetti fetchmail e sendmail1.1,
che di solito sono installati di default dalla maggior parte delle
distribuzioni.
In caso contrario si proceda all'installazione dei pacchetti a partire dal CDRom della stessa distribuzione.
Supponiamo ora che la persona di Michele Antonecchia sia in possesso di due
account (POP3) presso tiscalinet1.2 ed uno (IMAP)
presso un ipotetico topolug, con le seguenti caratteristiche:
N.B: Se si è in possesso di un account presso un altro ISP (ad esempio
Libero, Tin, SuperEva, etc ...), basta sostituire i relativi valori dei server
POP e SMTP forniti dallo stesso ISP al momento dell'attivazione dell'account.
Inoltre supponiamo che al computer abbiano accesso più persone o che comunque
siano presenti più utenti1.3 Linux. Noi supporremo di avere gli
utenti Linux:
disney michele
Fatta una dovuta panoramica della situazione di lavoro possiamo passare alla parte più tecnica della configurazione.
Anche se non siamo ancora in grado di leggerla, la posta è conveniente scaricarla, soprattutto se si ha una casella con un alto traffico. In questo modo eviteremo di intasarla, visto che a volte consta di soli pochi MegaByte.
Fetchmail ha anche un tool di configurazione grafico, fetchmailconf , che automatizza quello che stiamo per fare. A quanto pare funziona anche egregiamente ma lasciamolo perdere e facciamo le cose a manina, che sicuramente facciamo prima.
Qualsiasi utente è in grado di scaricare la posta per tutti gli altri utenti, ma in questo caso se gli utenti Linux non sono la stessa persona fisica, l'utente che scarica la posta conosce le password degli altri utenti. In tal caso ogni persona deve crearsi un file di configurazione di fetchmail per scaricare la sua posta. Nel caso, invece, che una persona fisica abbia sulla sua postazione Linux accesso a più account (ed è questo il caso che esamineremo) allora potrà scaricare e smistare la posta tra i suoi account direttamente con fetchmail.
Prendiamo ad esempio il caso che si abbiano i tre account di posta di tabella , e che si voglia smistare il primo ed il terzo all'utente Linux disney mentre il secondo all'utente Linux michele .
Dato che preferisco connettermi ad internet tramite l'utente michele
creo il file di configurazione .fetchmailrc (nota il punto) nella
home directory di michele ,
/home/michele/.fetchmailrc .
Quindi facciamo prima un bel ``cd '' per posizionarci nella nostra directory home, creiamo il file .fetchmailrc e ci scriviamo:
poll pop.tiscalinet.it with proto POP3 timeout 60 user paperino there with password quiquoqua is disney here poll pop.tiscalinet.it with proto POP3 timeout 60 user pluto there with password osso is michele here poll mail.topolug.it with proto IMAP timeout 60 user topolino there with password basettoni is disney here options keep
Salviamo, usciamo e cambiamo i permessi al nostro file altrimenti fetchmail non funziona.
$ chmod 600 .fetchmailrc
Notiamo che l'ultimo account differisce dagli altri per un particolare. Innanzitutto utilizza il protocollo IMAP anzichè POP, poi compare una opzione: keep. Tale opzione serve a non fare cancellare i messaggi sul server. Sarebbe buona idea se mentre fate queste prove metteste tale opzione a tutte le vostre caselle di posta, in tal modo nulla andrebbe perso, poi quando si è sicuri di aver raggiunto la stabilità della configurazione si può sempre togliere la stringa ``options keep''.
Per scaricare la posta a questo punto basta eseguire il comando:
$ fetchmail -voppure semplicemente
$ fetchmailSe invece si vuole che fetchmail provi a scaricare la posta ogni 10 minuti (600 secondi), si lancia il comando:
$ fetchmail -d 600
O in modo permanente basta creare un cron-job.
N.B.: Le nuove versioni di fetchmail hanno cambiato la gestione del POP / IMAP. Se usate una versione recente (superiore a 5.7) allora dovete lanciare fetchmail come di seguito
$ fetchmail --auth passwordOvviamente le opzioni sono cumulative e potreste aver bisogno di dare il comando più complesso:
$ fetchmail -d 600 -v --auth password
La posta scaricata va a finire (secondo l'esempio) in:
/var/spool/mail/michele /var/spool/mail/disneyN.B.: fetchmail può essere utilizzato con qualsiasi client di posta elettronica, sia testuale che grafico, basta avere l'accortezza di non configurare il client per accedere al server POP, ma dicendogli di accedere direttamente allo spool locale.
Finalmente ... non direi ;-) ... possiamo leggere la posta.
Mutt é un programma leggero ma molto efficiente per leggere la posta
da console. La sua flessibilità lo pone come uno strumento molto utile
per un uso
professionale per leggere la posta. Inoltre fornisce delle avanzate feature quali il
``key bindings'', il ``keybord macros'', il threading dei messaggi, la ricerca
tramite espressioni regolari ed altro.
In questa sezione, però, spiegheremo soltanto come realizzare una
configurazione di base per mutt, per gli approfondimenti basta riferirsi
ai capitoli successivi dove verrà presa in analisi una configurazione
un pò più personalizzata.
Per prima cosa creiamo le directory Mail, Mail/Friends, Mail/Lists nella nostra home directoty:
$ mkdir /home/tuo-utente/Mail $ mkdir /home/tuo-utente/Mail/Friends $ mkdir /home/tuo-utente/Mail/Listsed il file Mail/.mail_aliases 1.4:
$ cd /home/tuo-utente/Mail $ touch .mail_aliasescopiamo il file .muttrc, che troverete allegato a questo manuale 1.5
$ cp dove-si-trova-il-file/.muttrc /home/tuo-utentelo editiamo ed andiamo a cambiare i valori che si trovano nella sezione Dati personali, ed in particolare modifichiamo le seguenti voci:
set hostname="inventato.it" set realname = "Michele Antonecchia" set spoolfile='/var/spool/mail/michele'
N.B.: /var/spool/mail/michele é il file di spool locale dove viene scaricata la posta in arrivo, ad esempio, da fetchmail. Se non si utilizza fetchmail impostare la chiave ``set spoolfile'' in modo da puntare allo spool in cui scaricate la posta con il vostro programma.
A questo punto prima di eseguire mutt bisogna scaricare la posta.
$ fetchmail -v $ muttSe tutto é andato per il verso giusto, e se avete ricevuto posta, compariranno i vostri tanto desiderati messaggetti. Se nel frattempo non avete ricevuto posta mutt potebbe lamentarsi del fatto che non trova un file di spool con l'errore:
/var/spool/mail/michele: No such file or directory (errno = 2)
Una volta in possesso di almeno un messaggio possiamo passare ad un mini tutorial sulla gestione dei messaggi.
In qualsiasi momento è possibile entrare nel menu di aiuto digitando semplicemente il carattere ``?''.
Innanzitutto vediamo come spostarci nei menu una volta lanciato mutt.
|
I comandi sono simili a quelli utilizzati per ELM.
Per creare un nuovo messaggio basta premere il tasto ``m'' (che sta per mail to:). Se invece si vuole rispondere al messaggio il tasto è ``r'' (che sta per reply).
Compariranno in basso, in ordine, i campi To: e Subject: dove inserire il destinatario ed il soggetto come si fa con tutti gli altri client di posta.
Una volta inviato anche il Subject:, mutt aprirà l'editor, 1.6che di default è vim, e si potrà editare il messaggio.
Finita la creazione del messaggio, si salva (nel modo previsto dall'editor) e si esce dall'editor. Mutt chiederà cosa si vuole fare del file appena salvato. Premendo ``y'' il messaggio viene spedito allo spool di uscita1.7.
N.B.: Se si vuole allegare un file premere ``a'' prima di ``y'', scegliere il file da allegare ed infine premere ``y''.
Grazie all'opzione set autoedit non impostata, personalmente, ritengo sia più comodo scrivere i campi To: e Subject: ed utilizzare gli aliases 1.8. Nel caso si decommenta tale opzione nel file .muttrc, tali campi dovranno essere aggiornati in sede di editazione del messaggio, spostandosi con i tasti freccia sui relativi spazi lasciati vuoti.
Gli aliases sono una sorta di rubrica degli indirizzi e tale rubrica è il file .mail_aliases . Pertanto gli aliases sono molto utili quando non si vuole scrivere per intero l'indirizzo di posta elettronica.
Per creare un aliases ci sono due strade:
alias nome_corto Vero Nome <email@isp.it>
Quindi, quando si crea un messaggio, al momento di scrivere il campo To: o si scrive il ``nome_corto'' oppure si preme il tasto ``TAB'' per vedere l'intera lista degli aliases.
Per mandare il messaggio a più persone o si scrive nel campo To: una sequenza di nome_corto1,nome_cort2,..., oppure si preme il tasto ``TAB'' si selezionano, con ``enter'', tutti i destinatari e si esce con ``q''.
Dopo di che si procede nella normale procedura di creazione.
Quando si esce da mutt viene chiesto se archiviare i messaggi letti oppure lasciarli ancora in visione. Se si risponde affermativamente i messaggi verranno spostati dallo spool di entrata e salvati in /Mail/mbox .
Per rileggere i messaggi salvati bisogna caricare una mailbox, che nel caso in esame è una sola, con il tasto ``c'' seguito da un successivo ``?''. Il tasto ``c'' serve a dire che si vuole caricare una mailbox, il tasto ``?'' per visualizzare le mailbox a disposizione.
Con il file di configurazione da noi creato tutte le email verranno salvate in /Mail/mbox .
Di default nel file .muttrc ho settato vim come editor. Se volete invece utilizzare un altro editor dovete cercare il comando set editor=``vim +11'' nel file .muttrc alla sezione ``Editor e Stampa'' e cambiarlo. Ad esempio per utilizzare emacs la chiave deve essere
set editor="emacs -nw"oppure se volete utilizzare nedit
set editor="nedit +11"
N.B.: Se viene settato un editor grafico non sarà possibile scrivere un messaggio da console ma soltanto in ambiente X.
Inoltre ricordo che ``+11'' significa che l'editor deve posizionare il cursore alla undicesima riga, che per come è fatto il nostro .muttrc significa appena sotto gli header ;-)
È abitudine diffusa contrassegnare i propri messaggi con una firma1.9. Essa puo` contenere le cose più assurde (frasi, poesie, ascii art, indirizzi, etc ... ) ma deve essere ``formattata''.
Per formattata si intende che la firma vera e propria deve essere delimitata superiormente dai caratteri ``- '' cioè trattino trattino spazio. Lo spazio è importante.
Quando un client di posta (mutt) o un newsreader (slrn) incontrano tale delimitatore sanno che ciò che segue è una firma e la contraddistingono con un diverso colore.
La firma è deposta nel file /home/michele/.signature.mutt in accordo con la chiave set signature . Infatti in .muttrc essa è settata come
set signature="~/.signature.mutt"e pertanto il suo contenuto va cambiato secondo le esigenze.
Ad esempio il mio file .signature.mutt è così fatto:
Provare che ho ragione significherebbe riconoscere che posso aver torto. mail to: michele@telug.it website: http://www.telug.itIn realtà io sono pigro, e preferisco mettere i saluti in automatico. Allora per fare questo utilizzo una signature un pochetto diversa1.10
Ciao, Michele. -- Provare che ho ragione significherebbe riconoscere che posso aver torto. mail to: michele@telug.it website: http://www.telug.itMa attenzione. In .muttrc esiste la chiave set sig_dashes che serve a mettere il delimitatore - in automatico. Per utilizzare in modo corretto la seconda firma, devo disattivare questa opzione (altrimenti ``Ciao, Michele'' diventa parte della firma) nel seguente modo
set sig_dashes=noed inserire il delimitatore1.11 direttamente nel file della signature.
Per controllare che la firma sia ben formattata assicuratevi che quando scrivete un messaggio essa sia colorata.
Configurare sendmail per un uso in una intranet è forse una cosa complicatissima1.12 ma per noi che ce ne stiamo belli seduti a casa davanti al nostro pinguino solitario è, invece, la cosa più semplice di questo mondo.
Ci logghiamo come root ed editiamo il file /etc/sendmail.cf, senza farsi impressionare dalla mole di informazioni che contiene. Cerchiamo le righe
# "Smart" relay host (may be null) DSe le trasformiamo in
# "Smart" relay host (may be null) DSsmtp.tiscalinet.itMi raccomando, occhio agli spazi, che non ci sono. Adesso basta soltanto riavviare sendmail con un restart che, a seconda delle distribuzioni, si traduce nell'eseguire come utente root uno dei comandi
# /etc/rc.d/init.d/sendmail restart # /etc/init.d/sendmail restartPer spedire la posta basta eseguire:
$ sendmail -q -vse si vuole vedere in modo ``verbose'' ciò che sendmail sta facendo. Oppure semplicemente
$ sendmail -qN.B.: Non sempre un utente normale, cioè non root, può spedire la posta.
# ln -s /usr/sbin/sendmail /home/disney/bin/In questo modo andiamo un pochetto in barba con la sicurezza ma non crediate che sia meno sicuro che aprire una shell di root (e poi non siamo paranoici).
Chi ha fretta di mettere in funzione mutt e leggere subito la posta può saltare, per il momento, questa sezione. Raccomando vivamente, peró, di tornarci su in seguito in quanto di elevato interesse.
Con la configurazione appena fatta di sendmail nasce un problema.
Quando inviamo la posta il nostro MTA riscrive negli header del messaggio
un campo from con il nome della nostra macchina. Chiaramente la macchina ha
un nome fittizio e non e' raggiungibile da internet, cosi quando un nostro
corrispondente scarica l'e-mail il suo sendmail o fetchmail vedono che c'e'
un campo from con dominio inesistente, credono che si tratti di spam e non
scaricano il messaggio che noi gli abbiamo inviato.1.13
A questo punto è necessario installare i pacchetti m4 e sendmail-cf
1.14 dal cd della
nostra distribuzione oppure scaricarli da internet.
Apriamo il file sendmail.mc che, se non sappiamo dove si trova, lo rintracciamo con il comando
# find / -name sendmail.mc
e vediamo se contiene le seguenti righe
include(/usr/lib/sendmail.cf/m4/cf.m4) VERSIONID(`sendmail.mc - roessler@guug.de') OSTYPE(debian) define(`ALIAS_FILE',`/etc/mail/aliases')
ma soprattutto se i file che vengono richiamati esistono e sono posizionati nel percorso specificato.
Come primo file viene incluso il file cf.m4. Questo file macro di m4 contiene molte definizioni di macro per il resto del file. La macro OSTYPE è usata per assegnare alcuni parametri di default ad hoc per la nostra distribuzione. In particolare se usate una Debian la macro OSTYPE richiama il file ostype/debian.m4 il quale contiene specifiche stringhe di configurazione per la vostra distribuzione. Se invece non usate una distribuzione Debian, molto probabilmente il file che a voi interessa e ostype/linux.m4 e quindi dovrete sostituire la parola ``debian'' con ``linux''1.15. ALIAS_FILE comunica a sendmail dove guardare per la lista degli aliases, ma a noi non interessa.
Invece le seguenti righe dicono a sendmail di usare la feature genericstable e dove cercare i file necessari per utilizzarla.
FEATURE(masquerade_envelope) FEATURE(genericstable, `hash -o \\ /etc/mail/genericstable') GENERICS_DOMAIN_FILE(`/etc/mail/genericsdomain')
La feature masquerade_envelope dice a sendmail di applicare la riscrittura degli header per ``coprire'' il mittente del messaggio. Questo è l'indirizzo di posta con il quale un mail delivery esterno dirotterà la spedizione dei report failure e dei messaggi di warning.
Adesso abbiamo bisogno di definire lo smart host, cioè, una macchina con la quale trattare la posta in uscita dal nostro sistema. Da notare che il nome di questa macchina può essere diversa da quello dell' ISP o del server POP/IMAP1.16. Il codice da inserire nel file di configurazione è:
define(`SMART_HOST',`smtp.tiscalinet.it')
In realtà questa riga non farà altro che fare la modifica che nella sezione precedente è stata fatta di forza bruta a mano, ma non solo, durante la compilazione con m4 ,infatti, essa sarà usata per fare altre cose. Quelle cose che non si possono fare a forza bruta :)
Le ultime due righe includono le definizioni del ``mailer'', che sono necessarie a sendmail per trovare il modo di trattare vari tipi di mail.
MAILER(local) MAILER(smtp)
Per generare il file di configurazione vero e proprio sendmail.cf a partire da sendmail.mc digitare i seguenti comandi come root:
# m4 sendmail.mc > _sendmail.cf # mv -f _sendmail.cf sendmail.cf
Da notare la tecnica di scrivere l'output del processore m4 in un file temporaneo e poi spostarlo nel proprio posto. Ciò aiuta a prevenire il fatto che sendmail possa leggere parzialmente il file di configurazione che man mano viene generato.
Un grazie a Paolo Pierasanti (anche lui componente del TeLUG) il quale mi ha fatto notare l'inghippo e aiutato a risolverlo.
La instabilitá e la pesantezza che hanno sempre accompagnato sendmail hanno fatto si' che molte distribuzioni hanno deciso di utilizzare di default altri MTA. Tra i più stabili si distinguono QMail e Postfix. Il primo ha una struttura modulare ma molto complessa, il secondo più semplice e più facile da configurare.
Il tempo e' tiranno e questo non è un HowTo per gli MTA ;)1.17 cosìchè questa sezione rimane per il momento incompleta. Comunque sia il seguente /etc/postfix/main.cf può bastare per fare andare la baracca senza troppi intoppi.
queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/lib/postfix mail_owner = postfix mail_owner = postfix default_privs = nobody myhostname = bonovox.it # mettere un host diverso :) mydomain = thefly.it # ... anche il dominio :) alias_maps = hash:/etc/postfix/aliases mail_spool_directory = /var/spool/mail mailbox_command = /usr/bin/procmail -a $DOMAIN -d $LOGNAME relayhost=[smtp.tiscalinet.it] # modificate anche qui smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) / (World Domination Last) local_destination_concurrency_limit = 2 default_destination_concurrency_limit = 10 debug_peer_level = 2 debugger_command = PATH=/usr/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5
In rete troverete molto materiale per configurare postfix oppore qmail, quindi al momento non vedo il motivo di duplicare cose già esistenti :)
Di certo una configurazione come quella data nel capitolo precedente
è alquanto spartana e poco efficiente. Basti pensare che l'iscrizione
ad una sola mail-list potrebbe sconvolgere l'equilibrio tra gestione ed
efficienza. A volte si vole persino raccogliere
da parte la posta che arriva dall'amante in modo da tenerla separata da
quella ricevuta dalla fidanzata :-).
Un singolo file di mailbox, quale mbox, non può, per sua natura, rispondere
alle nostre esigenze ed è per questo che dobbiamo chiedere aiuto ad altre
fonti.
Anche se lo stesso mutt consente di smistare la posta in più mailbox, in questa
sezione analizzeremo l'uso di procmail per svolgere questa mansione. In questo modo
ripensamenti futuri su mutt non impediranno un passaggio veloce ad un altro
lettore di posta.
Procmail è un progamma molto utile per gestire la posta scaricata da fetchmail o che arriva in tempo reale alla nostra postazione (connessioni 24/24h ). La sua funzione è quella di leggere lo spool di entrata, quali
\var\spool\mail\disney \var\spool\mail\micheleidentificare, tramite delle regole che di seguito vedremo, i messaggi, e creare diverse mailboxes di tipo standard1.18.
La prima cosa da fare è, quindi, quella di obbligare i messaggi a passare sotto la tutela di procmail, dire a procmail dove deve leggere lo spool dei file, dare le regole e smistare i messaggi in base ad esse. Un esempio chiarirà il discorso.
Per prima cosa bisogna creare il file .forward1.19nella propria home directory.
$ cd ~ $ vim .forwarde scriverci la seguente riga senza andare a capo1.20
"| IFS=' ' && p=/usr/bin/procmail && test -f $p && exec $p -Yf- || exit 75 #michele"Tale file serve ad indicare al deliver (il programma usato dal nostro MTA per consegnare la posta in locale) se il messaggio di quell'utente1.21 deve essere reindirizzato, creandolo con il contenuto su indicato. In definitiva si ha l'effetto di passare il messaggio in arrivo al comando specificato nella stringa.
In mancanza di tale file, i messaggi verranno smistati senza alcun tipo di operazione svolta su di essi.
N.B.: Una raccomandazione gia fatta ma che a volte ce la dimentichiamo tutti. Prima di smanazzare con le regole di Procmail mettiamo al sicuro la posta, per evitare di perderla per sempre. Come ? mettendo l'opzione ``keep'' in .fetchmailrc. In questo modo la posta resterà al sicuro sul server e lontano dai nostri attentati ;)
Come abbiamo visto per sendmail, mutt e fetchmail, anche procmail ha un file di configurazione: .procmailrc 1.22. Adesso analizzeremo un file .procmailrc di esempio per capirne meglio la struttura. 1.23
# Please check if all the paths in PATH are reachable, remove the ones that # are not. PATH=$HOME/bin:/usr/bin:/usr/ucb:/bin:/usr/local/bin:. MAILDIR=$HOME/Mail # E` la dir dove conserviamo i messaggi DEFAULT=/var/spool/mail/michele LOGFILE=$MAILDIR/.from LOCKFILE=$HOME/.lockmail :0 # Tutto cio' che viena da thf * ^From:.*thf@somewhere.someplace $MAILDIR/todd # andra' in $MAILDIR/todd come unico file :0 # Tutto cio' che viena dal dominio uunet * ^From:.*@uunet $MAILDIR/uunetbox # andra' in $MAILDIR/uunetbox come unico file :0 # Le lettere di Henry * ^From:.*henry henries # andranno in $MAILDIR/henries/nome-file :0 # "Tutte" le mail che contengono SPAM * ^Subject.*MAKE.*MONEY.*FAST.* \dev\null # Vanno nel pozzo nero :0 # La mail-list di zio-paperone * ^From:.*mailing-list@*zio.paperone.* $MAILDIR/zio-paperone # sara` conservata nel folder zio-paperone # Anything that has not been delivered by now will go to $DEFAULT # using LOCKFILE=$DEFAULT$LOCKEXT
Le prime due righe hanno il compito di definire le variabili PATH e MAILDIR che servono a procmail. Importante è MAILDIR. Essa definisce il percorso della directory che conterrà le mailbox dove verranno smistati i messaggi1.24. Tali mailbox hanno lo stesso formato del file di spool.
Tralasciamo per ora le altre righe e soffermiamoci sui ``contenitori''.
Un contenitore è una parte del file .procmailrc. Esso inizia con il set di simboli ``:0'' (duepunti zero) e finisce dove inizia un nuovo recipiente o alla fine dello stesso file. Tale recipiente segue delle regole:
:0 * ^From:.*mailing-list@*zio.paperone.*va letta come: All'inizio della riga cerca la parola From: negli header del messaggio, seguita da qualsiasi numero di caratteri (anche nessuno) e dall'espressione mailing-list@zio.paperone a sua volta seguita da una qualsiasi quantità di caratteri, fino alla fine riga.
Pertanto entrambe i messaggi:
From: La lista della spesa <mailing-list@zio.paperone> From: Le consegne della settimana <mailing-list@zio.paperone>saranno processati da quella particolare regola
Analizziamo ora una particolare regola:
:0 c * ^Subject.*URGENTE* ! michele@postaprivata.itIn tal caso tutti messaggi dichiarati urgenti saranno reindirizzati (forwardati è orribile) a quell'indirizzo di posta, dove si presume venga scaricata quotidianamente ;-)
Pertanto il flag ``c'' serve a non perdere il messaggio, mentre ``!'' serve a fare il forward del messaggio. Se non si utilizzava il flag ``c'' il messaggio veniva reindirizzato e tolto dallo spool definitivamente.
Adesso vediamo un'altra particolarità:
:0 * ^From:.*thf@somewhere.someplace $MAILDIR/todd :0 * ^From:.*thf@somewhere.someplace toddLe due regole NON sono uguali. La prima salva i messaggi in un unica mailbox, accodandoli. La seconda li salva nella directory todd assegnandogli un nome unico. Se al nome della directory viene aggiunto ./ i messaggi verranno salvati con un nome di file numerico, progressivo.
La potenza di procmail non si sofferma soltanto a smistare la posta nei modi più astrusi, procmail è capace anche di passare un messaggio ad un programma. Se in .procmailrc inseriamo anche1.25 le variabili
DATE=`date +%y-%m` ARCHIVEDIR=$MAILDIR/archiveUna regola come questa
:0 c * ^From:.*mailing-list@zio.paperone | gzip >> $ARCHIVEDIR/zio.paperone.$DATE.gzHa l'effetto di archiviare automaticamente, mese per mese1.26, tutta la posta proveniente dall'indirizzo mailing-list@zio.paperone.
Infatti la variabile DATE serve per determinare il formato della data come anno-mese, mentre la variabile ARCHIVER specifica il percorso dove salvare l'archivio. Il flag c impedisce che il messaggio sia archiviato senza poterlo leggere.
N.B.: Tale regola deve precedere qualsiasi altra regola che riguarda tale indirizzo e che non abbia attivo il flag ``c''. Altrimenti la regola che precede quella di archiviazione cancella il messaggio dallo spool e l'archiviazione non avviene.
A volte si vuole operare su un singolo messaggio se esso contiene più informazioni. Cioè se esso risponde a più criteri contemporaneamente.
Per questo è possibile creare recipienti innestati.
:0 * ^From:.*mailing-list@*zio.paperone.* { :0 c * ^Subject.*URGENTE* ! michele@postaprivata.it $MAILDIR/zio-paperone }In questo caso quando il campo From AND Subject rispondono alle rispettive regole il messaggio viene reindirizzato e salvato, grazie al flag ``c'' nel suo folder.
Cose più complicate si possono fare adottando qualche trucco, ad esempio racchiudendo i comandi in parentesi tonde.
Inoltre le regole devo stare su una singola riga o mandate a capo con un . Ad esempio la regola
DATE=`date +%y-%m` ARCHIVER=$MAILDIR/archive SPAMDIR=$MAILDIR/spam * ^Subject.*MONEY* | (echo "Spam ricevuto in data `date`; \ cat) | gzip >> $SPAMDIR/spam.$DATE.gzequivale a
DATE=`date +%y-%m` ARCHIVER=$MAILDIR/archive SPAMDIR=$MAILDIR/spam * ^Subject.*MONEY* | (echo "Spam ricevuto in data `date`; cat) | gzip >> $SPAMDIR/spam.$DATE.gzed in particolare quando il subject contiene la parola MONEY, procmail fa precedere il messaggio dalla frase Spam ricevuto in data 00-09 e lo archivia tramite gzip nel folder spam.$DATE.gz .
Utilizzando procmail 1.27 è necessario fare alcune modifice al nostro .muttrc.
In particolare bisogna dire a mutt quali sono le mailboxes che hanno ricevuto le nuove mail e, nel caso, visualizzare quali hanno effettivamante hanno un nuovo contenuto.
Le prossime operazioni si riferiscono alle mailboxes create tramite procmail. Ad esempio se tramite procmail abbiamo dato la seguente regola
:0 * ^Subject.*ml-linux.* $MAILDIR/Lists/ml-linux :0 * ^From:.*@topolug.it.* $MAILDIR/Lists/topolug
allora nel nostro .muttrc dobbiamo inserire le seguenti righe nella sezione Mailboxes to watch for new mail
mailboxes `echo $HOME/Mail/Lists/*` mailboxes $HOME/Mail/mbox
In questo modo sia la mailbox topolug che ml-linux saranno inserite, tramite l'aterisco, come mailbox ``capaci di contenere posta''.
Ovviamente nella sezione delle mailboxes è necessario ``linkare'' tutte le mailboxes create con procmail. In generale una sezione come la seguente è in grado di provvedere a tutto.
mailboxes `echo $HOME/Mail/Lists/*` mailboxes `echo $HOME/Mail/Friends/*` mailboxes $HOME/Mail/mbox
Comunque sia avete gli strumenti necessari per personalizzare a dovere le vostre mailboxes. Ora è però necessario dire a mutt di leggere le mailboxes, e questo si fa aggiungendo il flag y quando lanciamo mutt
mutt -y
In questo modo al lancio di mutt verranno visualizzate le mailboxes specificate e quelle che contengono nuova posta saranno contrassegnate dalla N.
Infine, quando abbiamo finito di leggere una mailbox, premendo il tasto ``c'' ci verrà proposto di passare alla successiva mailbox che contiene un messaggio nuovo, se esiste, oppure, in caso che abbiamo già letto tutti i messaggi, ci verrà proposto di scegliere la mailbox invitandoci a premere il tasto ``?''.
Fino ad ora abbiamo fatto una panoramica generale e ad alta quota sull'argomento per il semplice fatto che ci premeva mettere in piedi una struttura veloce e funzionale. Adesso pero' possiamo divertirci a scoprire qualcosa in più e capire perchè mutt é un attrezzo funzionale, versatile ed efficiente.
Da sottolineare che la mappatura della tastiera è quella di default. Nel senso che l'associazione tasto-funzione è quella preimpostata all'atto dell'installazione. Pertanto se lavorate con mutt in una postazione configurata da altri, il tasto p (ad esempio) potrebbe non fare quello che questo manuale riporta.
Questa è la sezione meno piacevole alla lettura ma che comunque serve a poter svolgere le più comuni e frequenti operazioni.
Abbiamo giá accennato a pagina ai basilari comandi di movimento e pertanto mi limiterò, qui, soltanto a introdurre i restanti.
Come in tutti gli altri clienti di posta, mutt ha due modalità di lettura: l'Index ed il Pager. Si è nel primo quando si vede la lista dei messaggi contenuti in una mailbox. Si è nel pager, invece, quando si visualizza il contenuto del messaggio.
c cambia mailbox ESC c cambia cartella in modalita` sola lettura C copia il messaggio corrente in un'altra mailbox ESC C decodifica un messaggio e copialo in un'altra mailbox ESC s decodifica un messaggio e salvalo in un'altra cartella D cancella i messaggi che corrispondono ad un pattern d cancella il messaggio corrente F marca il messaggio come importane l visualizza solo i messaggi che corrispondono ad un pattern N marca il messaggio come nuovo o cambia il corrente metodo di ordinamento O inverti il metodo di ordinamento q salva ed esci s salva un messaggio t commuta il tag di un messaggio ESC t commuta il tag sui messaggi di un intero thread u ripristina un messaggio (undelete) v vedi l'allegato x annulla i cambiamenti ed esci <Return> visualizza un messaggio <Tab> salta al prossimo nuovo messaggio @ visualizza l'indirizzo completo dell'autore $ salva i cambiamenti alla mailbox / cerca ESC / ricerca inversa ^L pulisci e "riscrivi" lo schermo ^T commuta il tag dei messaggi che corrispondono ad un pattern ^U ripristina i messaggi che corrispondono ad un pattern (undelete)
<Return> scorri in gi\`u una linea <Space> visualizza la prossima pagina (o il prossimo messaggio se alla fine del messaggio corrente) - torna alla pagina precedente n visualizza il prossimo messaggio ? mostra le associazioni tasto funzione (keybindings) / cerca secondo un'espressione regolare (pattern) \ commuta la colorazione della ricerca
Procmail non è strettamente necessario per la gestione di più mailboxes. Mutt riesce anche lui in modo egregio a soddisfare tale esigenza. A volte si preferisce Procmail in quanto se si desidera cambiare il programma per leggere la posta non si perdono tutte le regole, che a volte sono davvero tante. Resta comunque da dire che le mailboxes che usa mutt sono standard ed esportabili su quasi tutti i lettori di posta (seri :-).
Comunque l'argomento è stato già trattato nella sezione 2.5, alla quale si rimanda. Inoltre nella sezione 2.5.5 troverete le modifiche da apportare a .muttrc in modo da poter gestire più comodamente le mailbox delle liste.
Molto utili sono gli ``Score'': Punteggi. Si posono assegnare dei punteggi
ai messaggi in modo da meglio identificarli o cancellarli
automaticamente. I punteggi sono cumulativi, quindi se un messaggio
rispetta più condizioni ad esso sarà assegnata la somma di tutti i
punteggi.
IMHO: Ritengo personalmente che molti abusano troppo dei
killfile, e alcuni presi da vere smanie pistolere killano l'impossibile.
Cercate quindi di usare i killfile con criterio.
Se usate procmail per cestinare la posta, e sbagliate a scrivere una regola, la avete persa per sempre. Se usate uno scorefile, mutt vi segnala quelli che verranno cestinati, se proprio volete buttarli via basterà dire un ``si'' all'uscita di Mutt, altrimenti date una ``passata'' ai messaggi segnati e chissà potreste scoprire che la regola che avete impostato in realtà non funziona bene e vi cestina posta importante ;-)
la prima cosa da fare per applicare uno score è inserire la colonna degli score :-). Questo si fa modificando la seguente riga del .muttrc
set index_format = "%3C %Z %{%b %d} %-20.20L (%3l) %s"
ed aggiungendovi %3N 2.1 dove più vi aggrada. Ad esempio
set index_format = "%3C %3N %Z %{%b %d} %-20.20L (%3l) %s"
Altra buona consuetudine è quella di riordinare (se volete, ovviamente) i messaggi in base agli score che hanno ricevuto. Quindi cambiate la chiave set sort_aux in
set sort_aux=score
A questo punto non resta altro che assegnare gli score.
In fondo al file di configurazione .muttrc c'è la sezione SCORING. Uno score segue la seguente struttura
score <pattern> <valore> score <pattern>=<valore>
Le due differiscono per una importante finezza. Se l'uguale non è presente, al messaggio viene assegnata la somma di tutti i punteggi a cui corrisponde. Se, invece, l'uguale è presente al messaggio viene assegnata la somma di tutti i punteggi fino all'espressione che contiene l'uguale (compresa). Le altre vengono ignorate. Facciamo un esempio:
score <pattern-1> 100 score <pattern-2> 100 score <pattern-3> 100
Se il messaggio rispetta le condizioni specificate in tutti e tre i pattern gli viene assegnato il punteggio di 300.
score <pattern-1> 100 score <pattern-2>=100 score <pattern-3> 100
In questo caso anche se messaggio rispetta le condizioni specificate in
tutti e tre i pattern gli viene assegnato il punteggio di 200. Infatti
il pattern-3 non viene analizzato a causa dell'uguale nel pattern-2 che
arresta la somma dei punteggi. Spero di essere stato chiaro :-).
Gli score sono utili anche quando, soprattutto nelle mailinglist,
vogliamo ritrovare subito i messaggi che abbiamo spedito noi stessi.
score '~f michelelug@telug.it' 333Questa regola assegna a tutti i nostri messaggi il numero 333, e se tale numero è sufficientemente alto i nostri messaggi galleggeranno fin su in cima alla lista :-)
Questa è forse la sezione più interessante in quanto qui troviamo tutta una serie di ``trucchetti'' di utilizzo quotidiano.
Abbiamo già visto che un allegato si inserisce quando abbiamo già finito di scrivere il messaggio e mutt ci chiede cosa vogliamo fare di quel messaggio. Di solito battiamo y (Spedisci) e il messaggio parte. Prima di spedire il messaggio possiamo anche decidere di non spedirlo (q), cambiare il campo To: (t), cambiare il campo Cc: (c), il Subject: (s) oppure allegarci un file (a). Alla pressione del tasto ``a'' mutt ci chiede in modalità ``ultima linea'' (cioè in basso) di scrivere il percorso relativo a assoluto del file. In alternativa inserendo ``?'' si apre un più comodo navigatore.
Se invece un messaggio contiene un allegato battendo il tasto ``v'' si apre una nuova interfaccia che ci permette di gestire gli allegati presenti.
I comandi possibili sono riassunti di seguito.
^E modifica il tipo di allegato <Return> visualizza l'allegato usando se necessario la voce di mailcap ^K estrai le chiavi pubbliche PGP <Esc>e usa il messaggio corrente come modello per uno nuovo L rispondi alla mailinglist indicata T visualizza l'allegato come se fosse testo b rispedisci un messaggio a un altro utente d cancella la voce corrente f inoltra un messaggio con i commenti (quoting) g rispondi a tutti i destinatari h visualizza il messaggio e (dis)attiva la rimozione degli header m forza la visualizzazione dell'allegato usando mailcap p stampa la voce corrente r rispondi a un messaggio s salva in un file un messaggio/allegato u ripristina la voce corrente (undelete) | manda un messaggio/allegato a un comando della shell con una pipe
Risulta comodo poter cancellare gli allegati attaccati ad un messaggio senza per questo perdere informazioni sull'allegato che ad esso era presente. Ad esempio a me piace raccogliere gli allegati in una cartella Attach. Se un messaggio contiene come allegato il file nomefile.ext, so che il file è presente nella directory Attach.
Sconsiglio di tenere gli allegati attaccati al messaggio. In primo luogo
accade spesso che si cerca un file che si ricorda ever ricevuto come
allegato ma poi si perdono ore a cercare nella distesa di mailbox il
messaggio che lo conteneva. Secondo poi a cosa serve avere 2 copie dello
stesso allegato ? Si è vero che un CD-R costa 1 euro ma i
masterizzatori non sono ancora a disposizione di tutti.
Comunque sia queste sono regole che ognuno di noi impara in base alla
sua esperienza e soprattutto in base alle sue esigenze e disponibilità
di mezzi.
Per stampare i messaggi, nemmeno a dirlo, c'è bisogno di configurare la stampante, ma questo esula dalle finalità di questo HowTo e pertanto ci limiteremo soltanto a riportare lo stretto necessario.
Le opzioni per la stampa sono riportate nella sezione ``Editor e Stampa'' del .muttrc allegato a questo manuale. In ogni caso per definire le opzioni di stampa si devono modificare le voci
set print=ask-yes set print_command=/bin/falseche per default hanno i valori che vedete assegnati, cioè si chiede la conferma positiva della stampa 2.2 e si dice che in realtà la stampante non esiste. Quindi per stampare dobbiamo prima configurare un stampante. Ad esempio decidiamo di definire una configurazione della stampante col nome di lp3602.3.
A questo punto possiamo inviare il messaggio alla stampa in molti modi.
Muttprint è un programma perl che, utilizzando il TEX, permette una
stampa migliore rispetto alle soluzioni precedentemente riportate. Siccome
però esiste un manuale in italiano distribuito insieme ai sorgenti e
ai pacchetti rpm/deb ritengo sia inutile ripetere cose già fatte.
Muttprint lo trovate in rete nei soliti siti oppure direttamente su
SourceForge, dove il progetto risiede.
mpage è un programma molto potente e versatile per stampare il file in formato testo in quanto consente la stampa di piú pagine per foglio (utile per salvare la foresta amazzonica) ed inoltre converte il file direttamnente in ps2.4. Per utilizzare mpage bisogna installarlo ;-). Fatta l'installazione basta scrivere nel nostro .muttrc la seguente riga nella sezione ``Editor e Stampa'':
set print=ask-yes set print_command=mpage -2 -bA4 -o -Plp360Abbiamo detto ad mpage che deve stampare 2 pagine per foglio, su un foglio A4, sulla stampante lp360 e che deve togliere la cornice ai margini2.5.
Per stampare un messaggio da mutt basta premere il tasto ``p'' mentre si visualizza il messaggio oppure quando si è nella lista dei messaggi e il cursore a forma di freccia è al fianco del messaggio che si desidera mandare in stampa.
Molto spesso ci arrivano nei messaggi informazioni riguardanti siti internet ed in particolare il loro indirizzo (il link appunto). Se si dispone del pacchetto urlview è possibile estrarre i link presenti nel messaggio per aprirli con il nostro navigatore preferito. Quindi appurato di aver installato il pacchetto urlview, nel momento in cui si visiona il messaggio basta premere i tasti Ctrl+b per fare apparire la lista di tutti link presenti nel messaggio. Scorrendo con i tasti freccia e premendo invio si apre il navigatore web che aprirà il sito linkato.
Si noti però che il browser preferito per l'apertura del link deve essere configurato nei file a corredo di urlview e non di mutt.
Il file a cui si deve far riferimento è /usr/bin/ur_lhandler.sh . In questo file consiglio di scambiare i programmi utilizzati per l'apertura dei siti http e cambiare la riga in questione come la seguente:
http_prgs="/usr/bin/netscape:XW /usr/bin/lynx:XT"Altrimenti gli url http (la maggioranza dei siti) verrà aperta con lynx in un xterm anzichè con Netscape (di solito più gradito rispetto a lynx)
Per approfondimenti si faccia riferimento, come al solito, al manuale di urlview.
[[Still Need Work]]
Mutt non poteva di certo abbandonarci alle nostre stravaganze e così, armatosi degli hook, si mette a nostra disposizione definendo per ogni mbox una configurazione distinta. Cosa voglio dire ? Semplice.
Fino ad ora abbiamo definito dei parametri che sono uguali per tutte le cartelle che procmail ci ha creato senza fare distizione di sorta. E se volessimo che, ad esempio, la cartella della posta privata sia ordinata per data anzichè per thread ? Basta ridefinire, tramite un hook, la variabile appropriata per quella sola cartella. Ma gli hook non si fermano qui. E' possibile definire una signature per ogni cartella, una identità diversa per ogni cartella 2.6, un tipo di header per ogni cartella e via discorrendo. In poche parole ogni variabile che esiste nel .muttrc può essere propriamente definita per ogni cartella creata. Questa è parte della flessibilità che offre mutt.
Quando ci si iscrive ad una ml si vuole ad esempio usare un nickname diverso oppure si vuole semplicemente che l'indirizzo di reply sia diverso. Ad esempio io preferisco che quando scrivo sulla ml del telug il reply sia l'indirizzo che ho presso il telug, mentre se scrivo sulla ml topomail voglio cambiare del tutto identità e scrivere il replay in maniera criptica in modo da evitare che progammi automatizzati captino il mio messaggio e mi riempino di spam la mia mailbox.
Per fare questo ci si può avvalere della chiave send-hook. La sintassi da usare è la seguente:
send-hook [!]pattern command
Facciamo un esempio. Supponiamo di essere iscritti alla ml telug@telug.it e alla ml linux@topomail.it
send-hook telug 'my_hdr From: Michele Antonecchia - <michele@telug.it>;\ my_hdr Reply-To: michele@telug.it' send-hook linux 'my_hdr From: Gamba di Legno; \ my_hdr Reply-To: nospam@michele.telug.it'
Analizzare cosa ci sia scritto non è molto difficile. Quando scrivo alla ml del telug vengono risettati i campi From: e Reply-To:. I due ``comandi'' sono separati da un punto e virgola poi ho aggiunto un backslash per andare a capo per avere una scrittura più pulita. Analogamente per la ml topomail. Ovviamente avrei potuto cambiare qualsiasi altra chiave, oppure cambiarne di più, ma non posso di certo fare tutti gli esempi ;). Invece una cosa mi preme sottolineare. Nella sintassi che ho presentato non compaiono gli apici. Ebbene questo è dovuto al fatto che l'azione di send-hook non è un comando vero e proprio ma contiene, in questo caso, una indicazione.
A questo punto nasce però un piccolo problema. Se scrivo una email alla ml del telug e poi ad un amico che ha un indirizzo non contenuto nei sed-hook, rimarranno impostate le opzioni per la ml del telug. Cioè il campo Reply-To: conterrà michele@telug.it. Per risolvere questo inghippo devo fare in modo che per tutte le altre email che scrivo le impostazioni sono quelle che voglio. Quindi la sezione dei send-hook diventa la seguente.
send-hook .* 'my_hdr From: Michele Antonecchia - <indirizzo di default>;\ my_hdr Reply-To: indirizzo di default' send-hook telug 'my_hdr From: Michele Antonecchia - <michele@telug.it>;\ my_hdr Reply-To: michele@telug.it' send-hook linux 'my_hdr From: Gamba di Legno; \ my_hdr Reply-To: nospam@michele.telug.it'
A questo punto posso andare nella sezione Header Personalizzati del .muttrc e posso commentare le chiavi my_hdr From: e my_hdr Reply-To:.
N.B.: Per usare gli header personalizzati deve essere attiva la chiave set hdrs.
Quando si scrive una email ad una mailing list è ovvio che il campo To: contiene l'indirizzo della lista. Non ha senso quindi dedicare un campo per la visualizzazione del destinatario. Analogo discorso quando si raccolgono le email di un amico in una mailbox separata, nel qual caso il campo To: e From: si alternano, cioè basta saperne uno per conoscere l'altro ;)
In questo caso, e analoghi, farebbe comodo avere più spazio da dedicare, ad esempio, al campo Subject: . Detto fatto!
Commentate il comando
set index_format = "%3C %3N %Z %{%b %d} %-20.20L %-12.12t (%3l) %
Poi adate nella sezione dove raccogliete i folder-hook e scrivete
folder-hook . 'set index_format = "%3C %3N %Z %{%b %d} %-20.20L %-12.12t (%3l) %s"' folder-hook Lists/* 'set index_format = "%3C %3N %Z %{%b %d} %-20.20L %s"'
ATTENZIONE: L'esempio vale se tutte le mailing list sono raccolte in mailbox contenute nella directory Lists. In caso contrario provvedete a mettere il giusto path. Inoltre il comando va su una sola riga.
Se avete una corrispondenza molto fitta con un amico vorrete di sicuro creare una mailbox destinata soltanto a lui. Per quanto riguarda la posta in ingresso non ci sono problemi. Ci penserà Procmail a smistare la posta in ingresso.
:0 * ^From.andrea@pippo.it.* $MAILDIR/Friends/andrea :0 * ^From.*chiara@paperino.it.* $MAILDIR/Friends/chiara
E fin qui non ci sono problemi. Per quanto riguarda la posta in uscita, invece, dobbiamo designare Mutt come ``smistatore''. Infatti di default la posta in uscita viene salvata nella mailbox designata dal comando set record=+mbox. Se vogliamo che la posta in uscita di Chiara e Andrea venga salvata nelle loro rispettive mailbox assegnate dobbiamo ricorrere agli hook di Mutt, ed in particolare a fcc-hook. Scriviamo quindi nel .muttrc:
fcc-hook '~t ^andrea@pippo.it' +Friends/andrea fcc-hook '~t ^chiara@paperino.it' +Friends/chiara
In questo modo la posta ``da'' e ``per'' i nostri amici è archiviata in una sola mailbox e possiamo seguire il thread senza troppa fatica.
Purtroppo, al momento, non ho trovato una soluzione migliore e inserire un nuovo amico in una friend-list richiede di editare due file, il .procmailrc ed il .muttrc. Speriamo che in un futuro non molto lontano Mutt riesca a colmare questo gap.
Mutt può interfacciarsi direttamente con il server IMAP senza quindi aver bisogno di usare fetchmail per scaricare la posta. Ma si ricordi: il supporto IMAP è ancora sperimentale (nella versione 1.2.x) e non supporta tutte le feature, come il caching degli headers :(. Per maggiori informazioni sullo stato di sviluppo di mutt si può fare riferimento al sito ufficiale.
Per far puntare Mutt ad una mailbox IMAP dobbiamo scrivere la nostra mailbox come
{hostname} mailbox
Dove hostname è il nome del server IMAP, e mailbox è il nome della nostra mailbox sul server IMAP. Tutti i server IMAP forniscono una speciale cartella chiamata INBOX, nella quale arrivano tutte le nostre mail. 2.7 Per esempio, se il nostro server IMAP è mail.topolug.it allora dobbiamo aprire la cartella INBOX dicendo a Mutt di aprire
{mail.topolug.it} INBOXcome se fosse una comune mailbox, cioè premendo il tasto ``c''.
Se necessario, si può specificare anche la porta del nostro server IMAP, e chiedere a Mutt di usare ssl se disponibile. La sintassi completa a tal proposito è
{[user@]hostname[:port][/ssl]} mailbox
Per connettersi al server IMAP, bisogna aprire la cartella IMAP. Cioè, premere il tasto ``c'' per passare al comando ``apri cartella'' che torna con il prompt Open mailbox:, ed introdurre il nome della cartella IMAP come descritto sopra. A questo punto avremo bisogno delle nostre chiavi di accesso username e password. Possiamo settare queste chiavi direttamente come variabili d'ambiente:
imap_user imap_pass
Possiamo settare queste chiavi direttamente nel nostro .muttrc (o, preferibilmente in un file con permessi 600 che verrà poi richiamato da .muttrc con il comando source), o settarle a mano una volta che Mutt è in esecuzione. La sintassi è la seguente.
set imap_user=topolino set imap_pass=basettoni
Se non le abbiamo settate, mutt ci avviserà quando tenteremo la nostra prima connesione.
Se vogliamo riporre fetchmail e webmail varie possiamo interfacciarci direttamente con il server IMAP seguendo i due punti di seguito.
In questa occasione però si presenta un problema. Non avendo il caching degli headers, ad ogni collegamento, mutt deve riscaricarsi gli headers. Se avete mailbox affollate potreste aspettare ance diversi minuti :((
Di solito i pacchetti delle nostre distribuzioni sono già pronti per essere utilizzati con il server IMAP (almeno quelli della RedHat). In caso contrario ci si può sempre affidare ai sorgenti e ricompilare mutt con il flag -enable-imap.
Se avete un sistema basato su rpm e non avete attivo il supporto imap, allora procuratevi il pacchetto src.rpm, installatelo e smanettate dentro lo specfile .mutt.spec che si trova (una volta installato il pacchetto dei sorgenti) in /usr/src/redhat/SPECS.
Se scorrete il file ad un certo punto vi accorgerete che esiste una chiave CFLAGS che contiene tutti i flag per la compilazione standard.
CFLAGS="$RPM_OPT_FLAGS" ./prepare --prefix=/usr \ --with-sharedir=/etc --sysconfdir=/etc \ --with-docdir=/usr/doc/mutt-%{version} \ --enable-pop --enable-imap \
Come vedete io ho già trovato il flag -enable-imap impostato, in caso contrario avrei dovuto aggiungercelo e salvare. 2.8
A questo punto resta soltanto costruire il pacchetto rpm. Da root spostatevi nella directory degli specfile, che sulla RedHat è /usr/src/redhat/SPECS, e date il comando
rpm -bb mutt.spec
Il pacchetto appena generato si troverà in /usr/src/redhat/RPMS/i386 e potrete installarlo come un normale rpm.
Infine se volete ottimizzarlo per la vostra achitettura, basta aggiungere il flag -target. Ad esempio per una architettura Intel i686:
rpm --target i686 -bb mutt.specPer la versione 3 di rpm, altrimenti per la versione 4
rpm -bb --target i686 mutt.spec
Prima di ricompilare vi consiglio di cambiare il numero di versione del pacchetto. In questo modo saprete in futuro quale pacchetto avete installato, l'originale o quello taroccato da voi. A tal proposito sempre nel mutt.spec cambiate, ad esempio, la riga
Version: %{pversion}i
nella seguente:
Version: %{pversion}i.imap
In questo modo il pacchetto rpm generato si chiamerà mutt-1.2i.imap-2.i686.rpm. (Sempre che la versione di mutt sia la
1.2i.2). Se, dopo aver installato il pacchetto, date un bel rpm
-qa | grep mutt capirete a cosa è servito lo sforzo ;)
Questa è la bellezza di Linux ed in particolare di mutt: solo quello
che serve.
Se si vuole utilizzare il supporto SSL in mutt, è necessario installare le librerie e gli header di OpenSSL (http://www.openssl.org) prima di ricompilare mutt. Le versioni testate sono le 0.9.3 e la 0.9.4.
Affinchè possa essere abilitato il supoporto SSL, bisogna ricompilare
mutt con i flag -enable-imap -with-ssl[=PFX]. Se però le
librerie e gli header di OpenSSL non sono installate nel percorso di
default (di solito /usr/include e /usr/lib ) allora possiamo
usare l'opzione PFX per definire la radice della nostra installazione.
Le librerie saranno allora cercate in PFX/lib e gli header in
PFX/include/openssl. Quindi, è come se di default PFX fosse /usr
Senza ripetermi oltre, se avete un sistema basato su rpm la procedura
è la solita: mettere le mani dentro mutt.spec alla voce CFLAGS. Se invece partite dai sorgenti allora il flag va attivato al
momento di lanciare il comando ./configure.
Per accedere ad una cartella IMAP tramite SSL, come già detto, il percorso della mailbox da inserire è
mailboxes {localhost/ssl}inbox mailboxes {localhost:994/ssl}inbox
Se al momento dell'accesso otteniamo un errore circa la mancanza di
entropia, significa che mutt non è in grado di trovare una sorgente di
numeri casuali in grado di inizializzare SSL. Se ciò accade, dobbiamo
generare noi la sorgente e dire a mutt dove cercarla. Di solito mutt
serca tale sorgente in $SslEntropyFile e in $RANDFILE,
sempre che tali variabili d'ambiente siano settate, ed in /.rnd,
nell'ordine indicato.
Se avete installato OpenSSL 0.9.5 (o maggiori), provate ad installare
EGD, Entropy Gathering Daemon (http://www.lothar.com/tech/crypto/). Mutt
cercherà di collegarsi al socket di EGD nei seguenti luoghi $SslEntropyFile, $RANDFILE, /.entropy e /tmp/entropy.
Se il socket non viene cercato, si deve procedere a creare un file
statico come descritto sopra.
Ogni volta che un server viene contattato, la sua certificazione è controllata attraverso un certificato valido. Quando viene incontrato un certificato non valido, ci viene chiesto di verificarlo. Se respingiamo il certificato, la connessione sarà terminata immediatamente. Se accettiamo il certificato allora la connessione verrà stabilita, e possiamo anche salvare il certificato in modo da essere automaticamente riconosciuti dal server alla successiva connessione. Il certificato potrà essere salvato in un file specificato dalla variabile $certificate_file variable. Di solito tale chiave è vuota (ovviamente), pertanto dovremo settarla con il valore giusto, ad esempio
set certificate\_file=~/Mail/certificates
Se avete fatto tutto ma non riuscite a collegarvi, allora potrebbe essere che il vostro server IMAP non supporta uno dei protocolli SSL.
Esistono diversi protocolli, TLSv1, SSLv2, e SSLv3. Per verificare quale utilizza il vostro server usate i seguenti comandi:
openssl s_client -host <imap server> -port <port> -verify -debug -no_tls1 openssl s_client -host <imap server> -port <port> -verify -debug -no_ssl2 openssl s_client -host <imap server> -port <port> -verify -debug -no_ssl3
Potete anche combinare le opzioni per riuscire in un collegamento. Una volta che sapete quali protocolli il vostro server IMAP non supporta potrete comunicarlo a mutt, tramite il solito .muttrc, con le chiavi ssl_use_tlsv1, ssl_use_sslv2 e ssl_use_sslv3, usando sempre il comando set anteposto alle chiavi. Ad esempio
set ssl_use_sslv2=yes
Se volete evitare di dichiarare sempre, allora settate la chiave imap_force_ssl, sempre con set davanti. Ad esempio
set imap_force_ssl=yes
Per ``par condicio'' analizziamo adesso anche il supporto al server POP.
In realtà servirsi di questa feature è poco utile in quanto il
protocollo POP3 non permette tutte le funzionalità che invece vanta
l'IMAP4. Comunque ...
Se mutt è compilato con il supporto POP3 (vedi sezione IMAP con la
differenza di usare il flag -enable-pop, ovviamente), si è in grado
di scaricare la posta connettendosi direttamente al server POP per poi
``navigarla'' il locale. Quando diciamo a mutt di scaricare la posta dal
server POP (default: tasto G), Mutt tenta il collegamento al server
specificato dalla chiave pop_host, specificata come al solito nel
nostro .muttrc, e si autentica con la username settata dalla
chiave pop_user. A connessione stabilita, mutt ci chiede la
password (quella relativa alla casella POP in uso, ovviamente).
Una volta autenticati mutt scarica la posta e la piazza nello spool
locale. In pratica abbiamo semplicemente fatto fare a mutt quello che
avrebbe fatto fetchmail. Con la differenza che fetchmail è
molto più flessibile.
Ne è valsa davvero la pena ?
Boh ... se lo chiede anche il manuale di mutt ;)
In questa sezione vedremo come aggiungere, tramite le patch, nuove
funzionalità a mutt. In particolare vedremo come applicare una patch
ad un pacchetto rpm. Perchè rpm ? Innanzitutto perchè utilizzo una
RedHat e non una Debian, e poi se siete abituati ai tar.gz comunque
troverete informazioni interessanti. In futuro ... chissà ;)
Consiglio vivamente di scaricare i sorgenti in formato src.rpm, ma
soprattutto che siano adatti alla vostra distribuzione. Se tenterete, ad
esempio, di compilare un pacchetto per la RedHat7.x su una RedHat6.x,
mutt potrebbe non funzionare correttamente a causa dei percorsi delle
directory che non sempre corrispondono.
Se siete iscritti ad una maillist, avrete notato che mutt dopo poco
farà molta fatica ad aprire una mailbox che contiene anche solo 1000
messaggi. Cosa fare allora ? Semplice, archiviare la posta vecchia e
comprimerla per non occupare spazio inutile su harddisk. Anche se avete
HD da decine di gigabyte vi accorgerete che un traffico intenso non ci
mette molto a far lievitare la directory Mail a 100MB.3.1
Ognuno si può inventare il suo metodo di archiviazione: manuale,
automatico oppure misto. Io ve ne propongo uno.
Fate capolino alla sezione su Procmail e vi accorgerete che
Procmail è in grado di archiviare in modo del tutto automatico e
trasparente la posta in arrivo, ad esempio in file separati per data
3.2 o in un unico file (metodo consigliato).
A questo punto vi propongo una regola per Procmail da aggiungere
al vostro .procmailrc, di questo tipo:3.3
ARCHIVEDIR=$MAILDIR/Archive :0 c * ^From.*mailing-list@zio.paperone | gzip >> $ARCHIVEDIR/zio.paperone.gz :0 * ^From.*mailing-list@zio.paperone $MAILDIR/zio-paperone
In questo modo la prima regola archivia il messaggio senza spostarlo
dallo spool, mentre la seconda passa
il messaggio in una mailbox non compressa. Quando la mailbox non
compressa diventa troppo pesante, potremo buttar via un pochetto di
messaggi superflui, tanto ne avremo comunque una copia in archivio
che è pure compresso. (ricordatevi di creare la directory Archive)
Adesso nasce il problema: `` Come leggo la posta nell'archivio
compresso?''. Ci sono due strade.
... Copyright: GPL Group: Applications/Internet Source: ftp://ftp.mutt.org/pub/mutt/mutt-%{pversion}i.tar.gz Patch0: mutt-nosetgid.patch Patch1: mutt-default.patch Url: http://www.mutt.org/ ... %prep %setup -n mutt-%{pversion} %patch0 -p1 -b .nosetgid %patch1 -p1 -b .default ... CFLAGS="$RPM_OPT_FLAGS" ./prepare --prefix=/usr \ --with-sharedir=/etc --sysconfdir=/etc \ --with-docdir=/usr/doc/mutt-%{version} \ --enable-pop --enable-imap \ ...
Come potrete facilmente immaginare nella prima sezione devo aggiungere la dichiarazione della patch per le mailbox compresse. Nella sezione successiva, analogamente devo aggiungere la patch vera e propria ed in fine devo aggiungere il flag -enable-compressed affichè mutt possa arricchirsi delle funzionalità offerte dalla patch. Quindi per farla breve il mutt.spec diventa:
... Copyright: GPL Group: Applications/Internet Source: ftp://ftp.mutt.org/pub/mutt/mutt-%{pversion}i.tar.gz Patch0: mutt-nosetgid.patch Patch1: mutt-default.patch Patch2: mutt-compressed.patch Url: http://www.mutt.org/ ... %prep %setup -n mutt-%{pversion} %patch0 -p1 -b .nosetgid %patch1 -p1 -b .default %patch2 -p1 -b .compressed ... CFLAGS="$RPM_OPT_FLAGS" ./prepare --prefix=/usr \ --with-sharedir=/etc --sysconfdir=/etc \ --with-docdir=/usr/doc/mutt-%{version} \ --enable-pop --enable-imap \ --enable-compressed \ ...
Ci sarebbe molto da dire su come applicare una patch, ma questo non è
un manuale sul rpm. Ovviamente se il vostro mutt.spec contiene
più o meno patch, la patch che inserite voi avrà sempre l'ultimo
numero disponibile.
Per maggiore pulizia e per una nota per il futuro ci sarebbero altre
modifiche da fare: aggiungere nei changelog la modifica che avete
fatto e cambiare il nome al pacchetto rpm che verrà generato.
Riporto di seguito queste modifiche:
... %define pversion 1.2 Version: %{pversion}i.comp ... %changelog * Wed Mar 07 2001 Michele Antonecchia <michele@telug.it> - added the compressed folder patch (by Roland) - added --enable-compressed flag ...
Detto questo non resta altro che compilare il pacchetto e installarlo.
Quindi da root eseguite, sempre restando nella dir /usr/src/redhat/SPECS/,
il comando rpm -target i686 -bb mutt.spec per rpm versione 3 o
il comando rpm -target=i686 -bb mutt.spec per la version 4
3.4 ed installate il pacchetto che avete generato e che
si troverà in /usr/src/redhat/RPMS/i686.
Infine c'è un'ultima modifica da fare. Non sono riuscito a reperire la
patch e per questo dovremo operare a manina sul file /etc/Muttrc
aggiungendo in coda le seguenti righe
# Compressed Folder Support # # gzip open-hook \\.gz$ "gzip -cd %f > %t" close-hook \\.gz$ "gzip -c %t > %f" append-hook \\.gz$ "gzip -c %t >> %f" # # bzip2 open-hook \\.bz2$ "bzip2 -cd %f > %t" close-hook \\.bz2$ "bzip2 -c %t > %f" append-hook \\.bz2$ "bzip2 -c %t >> %f"
Che diranno a mutt come comportarsi difronte ad una mailbox compressa.
Infine vi segnalo il sito http://mutt.linuxatwork.at/ nel quale potrete trovare il pacchetto rpm delle ultime versioni di mutt compresa quella che contiene la patch per le mailbox compresse.
In questa sezione vengono raccolti alcuni espedienti per arricchire Mutt di particolari feature oppure per risolvere particolari esigenze.
Ovvero come aggiungere facilmente un rompiscatole alla lista di filtraggio.
Prima di proseguire oltre vorrei fare una premessa. Assicuratevi se il
vostro fornitore della casella di posta possiede una procedura di
filtraggio direttamente sul server. In tale caso la posta indesiderata
potrete filtrarla direttamente sul server senza che siate costretti a
scaricarla comunque. Questo richiede quindi che la ``lista nera'' deve
essere creata on-line e che quindi non potete fare nulla con mutt.
In caso contrario proseguite oltre.
Inannzitutto bisogna creare due script che serviranno uno per aggiungere il mittente alla lista degli indesiderati l'altro per aggiungere il Subject alla lista dei subject indesiderati.
Questi script devono essere creati in una dir del vostro ``PATH'' altrimenti per eseguirli dovrete richiamarli con il percorso completo.
Gli script si chiamano mailkill-author e mailkill-subject.
#!/bin/sh ## ## $HOME/bin/mailkill-author ## Sebastian Helms <mail@helms.sh> ## Last changed : 07.01.2001 ## fügt den Autor der aktuellen Mail dem Killfile hinzu formail -IResent- -rtzxTo: >>/home/michele/Mail/.kill-author.list
#!/bin/sh ## ## $HOME/bin/mailkill-subject ## Sebastian Helms <mail@helms.sh> ## Last changed : 07.01.2001 ## fügt das aktuelle Subject (ohne Re: o.ä.) einerm Killfile hinzu formail -IResent- -rtzxSubject: | perl -pe 's/(Re|RE|re|Re(:\s*Re)):\s?//g' \ >> /home/michele/Mail/.kill-subject.list
Questi script non sono una mia idea (anche se il secondo l'ho un pò modificato), quindi è corretto se si lascia l'indicazione dell'autore se li volete distribuire. Nel caso risiederanno a vita solo sul vostro PC potete farne a meno.
Cosa importante, come si vede dal codice, questi script usano il perl per processare l'output di formail. Quindi installatelo se non lo avete ancora fatto.
Altra cosa iportante dovrete modificare il path /home/michele/Mail/ adeguandolo al vostro caso.
I file .kill-subject.list e .kill-author.list non è necessario crearli. Verranno creati automaticamente da mutt nel momento che deciderete di filtrare qualcuno o qualcosa.
Quindi dobbiamo dire a mutt come aggiungere l'autore del messaggio o il subject nelle rispettive liste di filtraggio. Pertanto aggiungiamo le seguenti righe nel file .muttrc (N.B.: Nella versione 1.2 e successive del .muttrc allegato a questo manuale le righe sono già presenti e quindi non dovrete aggiungerle)
# Inserisce il subject nel killfile macro index \cx "|mailkill-subject\n" \ "Aggiunge il Subject nel killfile procesato da procmail." macro pager \cx "|mailkill-subject\n" \ "Aggiunge il Subject nel killfile procesato da procmail." # Inserisce il mittente nel killfile macro index \ca "|mailkill-author\n" \ "Aggiunge il mittente nel killfile procesato da procmail." macro pager \ca "|mailkill-author\n" \ "Aggiunge il mittente nel killfile procesato da procmail."
In questo modo premendo i tasti CTRL A aggiungeremo alla lista l'autore, mentre premendo CTRL X aggiungeremo alla lista il subject.
Creata la lista il lavoro sporco passa a Procmail. Aprite il vostro .procmailrc e aggiungete in testa 4.1 a tutte le regole le seguenti 4.24.3
# killfile - Author FROM=`formail -rtzxTo:` :0 * ? /bin/fgrep -qxis "$FROM" $HOME/Mail/.kill-author.list { LOG=" trashed: $FROM is in kill file" :0: killed-author }
# killfile - Subject SUBJECT=`formail -zx"Subject:"` :0 * ? /bin/fgrep -qxis "$SUBJECT" $HOME/Mail/.kill-subject.list { LOG=" trashed: $SUBJECT is in kill file" :0: killed-subject }
In questo modo la posta indesiderata va a finire nelle mailbox killed-author e killed-subject. Se volete essere drastici potete sostituire queste mailbox con /dev/null ma ve lo sconsiglio. In ogni modo la posta l'avete dovuta scaricare e non si sa mai che non ci sia finita quella di un vostro amico. Se proprio volete disfarvene potete sempre cancellare le mailbox suddette e in un solo colpo eliminare tutta la posta indesiderata.
In molte occasioni capita che si ha la connessione ad internet ma che non ci si possa avvalere dell'MTA installato, come accade nei laboratori dell'Università oppure in ufficio, e non si vuole usare il classico WebMail. In questo paragrafo spiegheremo come ``bypassare'' l'MTA di default senza per questo contravvenire alle regole che ci ha dettato il nostro Amministratore. Infatti quello che faremo non va oltre ad un semplice accesso sulla porta 25 del nostro server smtp.
NOTA: Per verificare che non siete coperti da un firewall, prima di procedere oltre e perdere tempo fate un telnet sulla porta 25 del vostro server smtp. Se non potete raggiungere il server non riuscirete mai a spedire un messaggio :(
NOTA: Dovete essere in grado di accedere ad un server SMTP in grado di fare da relayer, altrimenti non riuscirete mai a mandare una email. Ad esempio Tiscali, Libero, Tinit etc ...spediscono messaggi fuori dal loro dominio solo se siete collegati ad internet tramite un loro account, ovvero fate parte del loro dominio
Il programma a cui faremo riferimento è ssmtp-2.39, facilmente
rintracciabile su
http://www.google.it . Non è l'unico ma in questa
sede non possiamo considerare tutti gli MTA che esistono.
In realtà ssmtp nasce come un piccolo client SMTP da sostituire ai colossi sendmail ,postfix etc...su piccole postazioni home. Per questo dovremo fare qualche piccola correzione prima di installarlo.
Innanzitutto scarichiamo il tarball e lo scompattiamo dove ci pare. Poi editiano il file configure ed impostiamo le variabili exec_prefix e prefix come segue:
exec_prefix=/home/tuo-utente/ssmtp prefix=/home/tuo-utente/ssmtpA questo punto creiamo il Makefile eseguendo il configure:
./configureCreato il file Makefile lo editiamo e modifichiamo la variabile etcdir da
etcdir=/etcin
etcdir=/home/tuo-utente/ssmtp/etcIn pratica abbiamo scambiato la radice principale con la nostra home directory in modo da non cercare di scrivere dove non ci è permesso.
make ; make installDurante l'installazione ci verranno chieste alcune cose come:
Mail name [localhost.localdomain]:a cui possiamo rispondere con fantasia o con un nome di dominio vero, e
Please enter the SMTP port number [25]:a cui possiamo confermare, nella maggior parte dei casi, il 25.
Se torniamo nella nostra home directory vedremo che è stata creata la dir ssmtp con la struttura seguente:
ssmtp/ |-- etc | `-- ssmtp | |-- revaliases | `-- ssmtp.conf (file di configurazione) |-- man | `-- man8 | `-- ssmtp.8 (pagina man) `-- sbin `-- ssmtp (eseguibile)
Il tutto per la modica cifra di 64KB ! (man pages comprese)
Bene, editiamo il file ssmtp.conf in cui
cambieremo la variabile mailhub in
mailhub=smtp.nostroprovider.ite se vogliamo attiviamo la variabile rewriteDomain.
set sendmail="~/ssmtp/sbin/ssmtp"Se il vostro provider o il server che usate per spedire la posta necessitano una autenticazione allora:
set sendmail="~/ssmtp/sbn/ssmtp -au user -ap password"Attenti però perchè avete messo la password di accesso al server in un file critico. Comunque il nostro scopo è raggiunto e se vi servono maggiori informazioni su ssmtp consultate la pagina di manuale:
less /home/sturm/ssmtp/man/man8/ssmtp.8Non fate incavolare il vostro SysAdmin e in bocca al Lupo :)
Quando non ho nulla da fare mi diverto spesso a zuzzurellare per il control
center di Gnome. Un giorno scoprii che esisteva un simpatico screensaver
con un buffo omino nasuto che, vagando per lo schermo, ne raccontava di
cotte e di crude. Incuriosito dal fatto mi sono messo in cerca subito
del file in cui l'omino nasuto raccoglieva le sue battute. In quattro e
quattr'otto ho scoperto che esiste un simpatico giochino: Fortune.
(se non lo avete installatelo ;)
Allo stesso tempo mi è venuto in mente che i miei corrispondenti
sarebbero stati felici se nelle mail che gli spedivo ci avrei messo anche una
barzelletta, o quantomeno così li avrei costretti a leggerla con tale
scusa ;)
Esistono vari modi per mettere una ``fortune'' in una signature. Qui se ne
propone uno.
Editate il vostro .bashrc ed iserite, nell'aposita sezione, questa
riga:
alias mutt='creasign ; mutt'A questo punto si deve creare il comando creasign, il quale genera la signature nuova.
$ vim bin/creasign4.4e ci scrivete dentro queste righe:4.5
#! /bin/sh #------ Se avete sig_dashes=no --------- echo "Ciao, Michele" > ~/.signature.mutt echo "-- " >> ~/.signature.mutt fortune >> ~/.signature.mutt #------ Altrimenti se sig_dashes=yes---- fortune > ~/.signature.muttMi raccomando. Scegliete SOLO la parte che vi interessa, in base a come la chiave sig_dshes è settata nel vostro .muttrc.
$ chmod 644 .signature.mutt
NOTA 1: A volte fortune estrae delle barzellette sconce e/o offensive. In questo caso lanciate il comando
fortune -fvi comparirà qualcosa come
$ fortune -f 100.00% it 87.03% italia 12.97% zozzital $E' facile capire cosa dice questo messaggio. Pertanto se non volete mettere le cose ``zozze'' come firma sostituite la parola fortune nel file bin/creasign come segue:
#! /bin/sh echo "Ciao, Michele" > ~/.signature.mutt echo "-- " >> ~/.signature.mutt fortune 100% italia 0% zozzital >> ~/.signature.mutt
Mi raccomando non fate i furbi e non scambiate gli indici ;)
NOTA 2: C'è un altro intoppo. Fortune a volte estrae
barzellette toppo lunghe, più lunghe dello stesso testo che si manda.
In tal caso fareste bene ad appendere al comando fortune anche i flag
-n e -s. Ossia (fate riferimento a man fortune ;)
#! /bin/sh echo "Ciao, Michele" > ~/.signature.mutt echo "-- " >> ~/.signature.mutt fortune -n300 -s 100% italia 0% zozzital >> ~/.signature.mutt
Lascio a voi il buonsenso.
NOTA 3: La stessa procedura può essere ripetuta per slrn
4.6 o per qualsiasi
altro programma. Basta mettere le mani a bashrc.
sudo è un programma alquanto affascinante in quanto limita i pericoli accennati sopra. Infatti creare un link a sendmail o assegnarli il bit SUID fa in modo che un utente normale possa usare sendmail con tutte le sue potenzialità. Con sudo invece possiamo limitare le libertà dell'utente all'uso del programma descrivendo precise regole. Non mi dilungo su sudo perchè non è lo scopo di questo manuale, pertanto mi limito a riportare la riga da inserire in /etc/sudoers :
michele localhost = NOPASSWD: /usr/sbin/sendmail -q, <altro camando>Già con questo piccolo esempio possiamo apprezzare le potenzialità di sudo. Infatti solo dalla macchina localhost e solo l'utente michele 4.8 può eseguire il comando sendmail -q senza inserire la password. Badate bene, michele non può eseguire sendmail se non con il parametro -q, qualsiasi altra opzione sarà negata.
A questo punto, però, per spedire la posta si deve eseguire il comando
$ sudo /usr/sbin/sendmail -qche se sembra lungo può sempre essere inserito in uno script o in un alias dentro .bashrc .
A cura di Angelo Siciliano - angelo.siciliano@tiscalinet.it
Molto spesso capita di ricevere posta da un malcapitato utente di
Outlook. Per chi come me fa uso di Mutt, significa vedere un testo
formattato malissimo, pieno di crocette rosse che rendono il testo
difficoltoso alla lettura. Che dire? Bisogna solo avere pazienza. Ma
noi, utenti felici di un programma serio come Mutt non possiamo
scrivere cose illegibili. Per questo è consigliabile l'uso di una
macro che formatti per bene il testo. La documentazione su par è molto
corposa, quindi chi voglia approfondire questo argomento troverà a
sufficienza nella propria /usr/share/doc/par.
Par funziona molto
bene insieme ad un editor come Vim. E' ovvio che ognuno di noi ha
gusti differenti in fatto di editor, ma visto che io uso Vim mi sembra
logico che parli di Vim! :-) Cominciamo a modificare il nostro .vimrc.
Da un terminale facciamo
angelo@mrbean:~\$ vim .vimrc
e agiungiamo queste righe al nostro file:
vmap <F10> :!par 72jqi<CR><ESC> vmap <F9> :!par 72qi<CR><ESC>
In questo modo è possibile selezionare in modalità visual il testo da
formattare, perchè altrimenti par prenderà iniziative e scombinerà
anche i campi From, To, Subject, ecc.
Quindi basta evidenziare con il mouse (o con la tastiera da console)
il testo da formattare e premere il tasto F10 (o F9). Ovviamente si può
cambiare il tasto associato alla macro...
Che differenza c'è tra le due macro? La prima formatta il testo al
-esimo carattere giustificandolo, la seconda senza fare la
giustificazione.
Adesso le mail scritte con Mutt saranno più gradevoli alla
vista!
Spesso, troppo spesso, la gente quota male.
Quotare significa riportare parte del messaggio ricevuto in quello che
si sta scrivendo per facilitare la comprensione del discorso.
E` uso comune non riportare più di 4-6 righe o addirittura non più
di quanto si scrive nella risposta. Ma a chi lo dici ! La gente fa come
gli pare e visto che siamo in democrazia se il mio interlocutore fa come
gli pare ... lo castigo con mutt ;)
Quindi se il quoting è troppo e volete eliminarlo, mentre leggete il
messaggio, premete il tasto ``T'' ossia ``shift+t''.
Per ripristinare il quoting l'operazione è la stessa.
Smanettando i sorgenti di mutt per scrivere questo manuale, ho notato che si ha un leggero incremento di prestazioni se ricompilate mutt specificando la vostra architettura. Non aspettatevi che mutt metta il turbo o che chissà cosa riesca a fare se ottimizzate il pacchetto. Otterrete solo un leggero miglioramento che però si vede.
Quindi scaricatevi il pacchetto src.rpm dei sorgenti ed installatelo. Da root andate in /usr/src/redhat/SPECS e date il comando
rpm --target i686 -bb mutt.specse per esempio avete un pentium II o superiore. Attendete la fine della compilazione, andate in /usr/src/redhat/RPMS/i686 e reinstallate il pacchetto che ci trovate. Poi fatemi sapere se ne è valsa la pena.
No! Non mi sono sbagliato. Questa è proprio l'introduzione. Siccome il mio intento era quello di creare un How-To che fosse al contempo completo ma rapido per chi avesse avuto fretta, mi sono reso conto che un "papiello" di chiacchiere all'inizio del documento erano davvero fastidiose. Resta comunque il fatto che qualche parola sulla licenza e sulle finalità del manuale si devono spendere. Quindi ecco a voi volenterosi di tanta lettura tutto quello che c'è da sapere su questo mio lavoro.
Copyright (c) 2000 Michele Antonecchia. È garantito il permesso di copiare,
distribuire e/o modificare questo documento seguendo i termini della GNU Free
Documentation License, Versione 2 pubblicata dalla
Free Software Foundation; senza Sezioni non Modificabili, con
nessun Testo Copertina, e con nessun Testo Retro di Copertina.
Una copia della licenza è disponibile in appendice o presso il sito
http://www.gnu.org.
Questo Howto è una documentazione gratuita, fornita così com'è, senza
alcuna garanzia, nè implicita, nè esplicita di adeguatezza ad un uso
particolare o di commerciabilità. L'autore non si assume alcuna
responsabilità per eventuali danni provocati da quanto contenuto.
Per garantire una uniformità di questo manuale, l'autore preferisce essere
avvertito prima che vengano fatte delle modifiche, al solo scopo di tenere una unica
versione dell'opera. Pertanto chi vuole inserire delle modifiche e/o aggiungere
anche solo parte del testo è pregato di contattare l'autore il quale si riserva
la facoltà di giudizio.
Questa opera nasce da quelle che sono state le mie particolari esigenze per configurare mutt, poi si è evoluta in base alle domande che ho ricevuto :)
In questo manuale si partirà dapprima da una configurazione minimale che riguarda soltanto il file .muttrc, in secondo momento, a mò di moduli, si inseriranno delle sezioni che vanno ad arricchire la configurazione minimale. In tal modo l'utente che utilizza, ed esempio, una configurazione del tipo sendmail + mutt + fetchmail + vim, seguirà la sua configurazione ricercando i relativi "moduli" che gli servono e se un giorno deciderà di cambiare qualcosa gli basterà spulciare soltanto la sezione che gli interessa.
Questa opera nasce soprattutto dalla lettura di riviste, HowTo, file di documentazione e quant'altro esiste in rete, edicola e libreria. Il suo intento non vuole essere affatto denigratorio nei confronti del lavoro di chi ha precedentemete scritto qualcosa in riguardo al tema. L'opera è open, e pertanto affatto con fini di lucro.
Non verrà spiegato il procedimento di installazione dei pacchetti in quanto si ritiene l'argomento del tutto fuori tema, nonchè banale.
Si consiglia, comunque, come approfondimento, di leggere il file di manuale allegato
allo stesso mutt che si trova, a seconda delle distribuzioni, nella directory
/usr/doc/mutt-xxx/manual.txt oppure /usr/share/doc/mutt-xxx/manual.txt
dove ovviamente xxx indica la versione del programma.
Questa è la prima versione ``stabile'' del mutt-HowTo nel senso che dopo circa 5000 visite al sito non ho ricevuto munacce di morte :)
Prima di pubblicare un file di configurazione, testo sulla mia pelle se funziona. Nulla vieta che comunque possano esservi delle imperfezioni.
L'obiettivo di questo manuale non è quello di sostituire il manuale ufficiale di mutt (il manual.txt), al quale anche io faccio riferimento, ma quello di aiutare chi per la prima volta si avvicina a mutt e quello di dare degli input fantasiosi per chi mutt già lo conosce.
La numerazione della versione sarà del tipo 1.3.7. Il primo numero identifica la major release e cambia ogni qualvolta ci saranno ``grandi sconvolgimenti'', il secondo numero identifica la minor release e cambia se verranno aggiunti dei paragrafi o delle sezioni su nuovi argomenti. Infine il terzo numero identifica il patch level e cambia solo per identificare se ci sono state correzioni ortografiche, nel codice LATEX, o comunque qualcosa di pocho conto.
Con la speranza che il mio lavoro sia di aiuto a chiunque utilizza mutt auguro buona lettura e buona configurazione.
Versione 1.0.0 (13 Marzo 2002)
Versione 0.0.8 (=1.0.0rc) (28 settembre 2001)
Versione 0.0.7 (19 luglio 2001)
Versione 0.0.6 (22 maggio 2001)
Versione 0.0.5 (7 marzo 2001)
Versione 0.0.4 (10 febbraio 2001 e non come pubblicato)
Versione 0.0.3
Un ringraziamento a Marco Pratesi per avermi concesso lo spazio sul Telug per pubblicare questo lavoro e per avermi passato il suo programma inputtex.c senza il quale avrei preso a calci latex2html. Inoltre un ringraziamento collettivo a tutti coloro che hanno letto il Mutt-HowTo e che tramite le loro osservazioni hanno contribuito a ritoccarlo. Infine ringrazio in anticipo tutti coloro che esprimeranno, tramite email, un giudizio su tale opera e che con le loro richieste e domande contribuiranno allo sviluppo de manuale.
Grazie a tutti, Michele.
This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.47)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split 1 -no_navigation -local_icons mutt-howto_html.tex
The translation was initiated by Michele Antonecchia on 2002-03-13