Posta locale con client grafici ed Exim

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Edit-clear-history.png Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.

Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione.


Debian-swirl.png Versioni Compatibili

Debian 7 "wheezy"

Introduzione

In questa guida vedremo come utilizzare i client email grafici più diffusi per leggere ed inviare la posta locale, ossia le email inviate dal sistema verso gli utenti o da un utente verso l'altro purché entrambi abbiano un account sulla stessa macchina fisica. Pertanto questa guida non spiegherà come configurare Exim per funzionare all'interno di una rete LAN.
Il principale vantaggio della configurazione spiegata sarà quello di poter visualizzare le email inviate dal sistema (attraverso servizi come Cron, Sudo o altri) direttamente nel nostro programma di posta grafico preferito.

Pacchetti richiesti

In questa guida si è scelto di utilizzare Exim, per cui:

# apt-get install exim4 mailutils

Il pacchetto "mailutils" è utile per inviare email attraverso il comando "mail" (comodo all'interno di script).

Configurazione di Exim

Se installate Exim per la prima volta, vi verranno poste una serie di domande preliminari per una configurazione iniziale. Lo stesso risultato si può ottenere attraverso il comando:

# dpkg-reconfigure exim4-config

Rispondete in questo modo:

Tipo di configurazione del sistema di posta
Solo consegna locale; non in rete
Mail name del sistema
localhost
Indirizzi IP sui quali attendere connessioni SMTP in ingresso
Lasciate gli IPv4 (127.0.0.1) e IPv6 (::1) di localhost
Altre destinazioni per conto delle quali accettare posta
localhost
Mantenere al minimo il numero di richieste DNS (dial-on-demand)?
Se non avete una connessione permanente ad Internet, rispondete "Sì"
Modalità di consegna della posta locale
Qui la scelta dipende dal tipo di client di posta che si vuole utilizzare e dalle proprie preferenze personali. La scelta ricade tra il formato "Maildir" e il formato "mbox"; vedere le configurazioni per ciascun programma di posta descritte in seguito. Se si sceglie "Maildir" verrà creata una directory /home/utente/Maildir in cui sarà conservata la posta ricevuta.
Dividere la configurazione in molti piccoli file?
Leggete la descrizione e rispondete di conseguenza; la risposta è ininfluente se non modificate mai i file di configurazione di Exim.

A questo punto Exim crea i file di configurazione nella directory /etc/exim4/ e si avvia in background.

Client di posta

Kmail

Kmail utilizza semplicemente "Maildir", per cui Exim va configurato opportunamente per utilizzare questo formato. Quindi:

  1. Creare un nuovo account: "Impostazioni -> Configura Kmail -> Account -> Aggiungi"
  2. Tipo di account : "Casella Maildir"
  3. Scegliere un nome per l'account e il percorso della casella Maildir che sarà /home/utente/Maildir
  4. Applicare i cambiamenti

Icedove

Per Icedove si può utilizzare il formato "mbox" per cui Exim va configurato opportunamente. Quindi:

  1. Creare un nuovo account: "Account settings -> Account actions -> Add other account"
  2. Scegliere "Unix Mailspool (Movemail)"
  3. Inserite il vostro nome e l'indirizzo di posta che sarà del tipo "utente@localhost"
  4. Deselezionare la casella "Use Global Inbox"

Server SMTP

Se si vuole inviare la posta in locale attraverso un client grafico, è necessario configurare nei client un server SMTP.
I passaggi variano da client a client ma le impostazioni da inserire restano comunque le stesse:

  • Tipo server: SMTP
  • Indirizzo: localhost
  • Porta: 25
  • Autenticazione: nessuna

Attraverso questo server SMTP, e con questa configurazione di Exim, è possibile inviare solo email verso indirizzi locali che, ricordo ancora una volta, appartengono a utenti che effettuano l'accesso sulla stessa macchina.

Test di funzionamento

Utilizziamo ora il comando "mail" per inviare una email di prova e testare il funzionamento della configurazione.

$ mail -s "prova messaggio" utente@localhost < file_di_prova

dove file_di_prova è un file che contiene il corpo del messaggio da inviare. Nel mio caso la prova è stata:

$ mail -s "prova messaggio" s3v@localhost < /etc/hosts

Si può anche inviare una email ad un altro utente utilizzando ad esempio la modalità interattiva del comando "mail":

$ mail pippo@localhost [Invio]
Cc: [Invio]
Subject: Titolo del messaggio di prova [Invio]
Ciao! Questo è un messaggio di prova [Invio]
[Ctrl+D]

Chiaramente il test può essere effettuato anche all'interno di un client grafico provando ad inviare un'email ad un altro utente (o a se stessi).

Leggere la posta locale di sistema

Molti servizi di sistema inviano di default una email locale all'utente root. Può essere opportuno, quindi, che le email inviate dal sistema all'utente root vengano reindirizzate ad un altro utente che è anche amministratore della macchina.
Per far questo basta modificare il file /etc/aliases e aggiungervi in fondo, se non fosse già presente, la riga:

root: utente

Nel mio caso:

root: s3v

Ora le email locali (sia di sistema che di altri utenti) inviate a root saranno reindirizzate all'utente specificato. Per testare questo comportamento inviate una email a root:

$ mail -s "prova messaggio" root@localhost < /etc/hosts

Notifica delle email

Un'ulteriore comodità potrebbe essere la notifica delle email ricevute (magari nella systray) senza dover aprire il client mail.
Per questo scopo esistono molti tool sia grafici che testuali e ogni Desktop Environment, generalmente, ha il proprio. Purtroppo questo comporta, a volte, l'installazione di numerosi pacchetti che sprecano risorse hardware e solo per ottenere una funzionalità davvero semplice.

Qui si farà riferimento al piccolo programma "mailcheck" che svolge perfettamente il lavoro che ci serve e senza tanti fronzoli.
Per installarlo:

# apt-get install mailcheck

Quindi bisogna copiare il suo file di configurazione nella home dell'utente che vuol ricevere le notifiche:

$ cp /etc/mailcheckrc ~/.mailcheckrc

creando il nuovo file nascosto ".mailcheckrc".
A questo punto è sufficiente decommentare nel file la riga (o le righe) che permettono a "mailcheck" di controllare la presenza di nuovi messaggi nelle cartelle in formato mbox o Maildir. Ad esempio:

...
/var/spool/mail/$(USER)
...

permetterà il check per il formato mbox mentre con:

...
$(HOME)/Maildir/
...

si otterrà lo stesso risultato per il formato Maildir.
La scelta dipende dal formato (mbox o Maildir) delle email utilizzato dal proprio client mail (come spiegato in precedenza).

Ora è tutto pronto per ammirare "mailcheck" in azione:

$ mailcheck -c 
You have 5 new messages in /var/spool/mail/s3v

Chiaramente in questo modo abbiamo solo spostato il problema di partenza senza risolverlo.
Per ottenere le notifiche nella systray basterà modificare leggermente il file ".mailcheckrc" in questo modo:

...
/var/spool/mail/pippo
...

in cui abbiamo soltanto sostituito la variabile "$(USER)" con il nome dell'utente che ci interessa. Questa modifica è necessaria solo se si utilizza mbox.
Per finire non resta altro che creare un job di Cron che eseguirà ad intervalli regolari il comando precedente.

KDE
Per KDE il job si crea con:
$ crontab -e
e inserendo ad esempio:
*/10 * * * * env DISPLAY=:0 kdialog --passivepopup "$(mailcheck -c)" >/dev/null 2>&1
per ottenere, ogni dieci minuti, la notifica nella systray delle email ricevute.




Guida scritta da: S3v 20:41, 12 nov 2012 (CET) Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized