Squirrelmail, la tua posta sul web

Il post di Angelo mi ha dato il La per una veloce guida su squirrelmail, un buon sistema di webmail scritto in PHP per avere la vostra posta elettronica a disposizione ovunque troviate una connessione ad Internet. Proprio ieri ho finito di configurare la mia e questi pochi giorni di utilizzo mi hanno proprio entusiasmato.

Prerequisiti

Per poter installare squirrelmail dovrete avere alcuni servizi già funzionanti, la cui installazione e configurazione non fa parte di queste istruzioni. In particolare ci sono:

Servizi indispensabili

  • un server imap (quello descritto da Angelo va benissimo)
  • un server web accessibile da internet
  • un interprete PHP

Servizi opzionali

  • possibilità di attivare una connessione criptata (https)
  • server SMTP per spedire la posta
  • un proxy imap (imapproxy)
  • un server database accessibile tramite PHP (mysql)

Installazione e configurazione

Tutte le maggiori distribuzioni hanno disponibile i binari di squirrelmail già pacchettizzato. Nel mio esempio uso una installazione Debian Etch, che dovrebbe essere compatibile anche per Ubuntu e distibuzioni Debian-like, e comunque molto simile alle altre distribuzioni.

Dopo aver installato i pacchetti squirrelmail e squirrelmail-locales, quest’ultimo per avere l’interfaccia nella nostra lingua, la configurazione, anche se direttamente accessibile dal file di testo config.php, può essere eseguita molto semplicemente tramite lo script squirrelmail-configure che offre in console una interfaccia testuale come questa:

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages

D. Set pre-defined settings for specific IMAP servers

C Turn color on
S Save data
Q Quit

Command >>

I parametri indispensabili sono tutti in ‘Server Settings‘:

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Server Settings

General
-------
1. Domain : trim(implode('', file('/etc/'.(file_exists('/etc/mailname')?'mail':'host').'name')))
2. Invert Time : false
3. Sendmail or SMTP : SMTP

A. Update IMAP Settings : localhost:143 (uw)
B. Update SMTP Settings : localhost:25

R Return to Main Menu
C Turn color on
S Save data
Q Quit

Command >>

Qui potrete configurare:

  • i parametri del server imap: porta di ascolto, solitamente 143, tipo di server, io ho installato uw-imapd ma anche altri vanno bene, e tipo di autenticazione, che se l’installazione è tutta locale può tranquillamente essere in formato testo senza comunicazione criptata (TLS).
  • i parametri del server SMTP che vi permette di spedire la posta: se non avete a disposizione un server locale potete benissimo utilizzare il server del vostro provider.

Nel sottomenu 3 potrete indicare dove tenete la vostra posta, solitamente nel direttorio Mail/, e i nomi delle cartelle standard: Cestino, Inviata e Bozze.

Nel sottomenu 4 vi suggerisco di attivare le opzioni 3 e 4, che vi permetteranno di vedere le mail ordinate per thread.

Potete tranquillamente ignorare i sottomenu 5, 6 e 7 e dare un’occhiata al sottomenu 8, che vi permette di attivare alcuni interessanti plugins. Quelli che trovate elencati sono solo alcuni tra i moltissimi che il sito di squirrelmail e altri siti sul web vi mettono a disposizione. Vi segnalo translate che permette di tradurre le vostre mail con l’aiuto di Babelfish o altri traduttori disponibili sul web, squirrelspell per il controllo ortografico di quanto state scrivendo, calendar che mette a disposizione un lussuoso calendario dove appuntarsi gli impegni, filters e spamcop che vi proteggono dallo spam e distribuiscono la vostra posta direttamente nelle varie cartelle.

Qualora abbiate a disposizione un server MySQL, o un’altro server database compatibile con PHP, potrete archiviarvi il vostro indirizzario e le preferenze indicando nel sottomenu 9 il nome delle tabelle che avrete provveduto a creare. Per la configurazione del database vi rimando alla corrispondente sezione del manuale.

Infine indicando it_IT come linguaggio di default nel sottomenu 10 potrete avere l’interfaccia web in italiano. Abbiate l’accortezza di verificare che il set di caratteri scelto sia presente nel vostro locale, dando in console il comando ‘#locale -a‘.

Pubblicazione

A questo punto siete pronti a rendere accessibile la vostra webmail su internet. Nella directory di configurazione di Squirrelmail, solitamente /etc/squirrelmail, trovate il file apache.conf che contiene il codice necessario per pubblicare il tutto tramite un server apache. Quello che dovrete fare è modificare, se necessario, il dominio dove apparirà la webmail e il direttorio dove si trova squirrelmail. Lasciando tutto invariato in una distribuzione Debian standard la vostra mail apparirà in http://VOSTROSITO/squirrelmail.

A questo punto dovrete fare in modo che questo file venga letto da apache, il che può essere fatto in vari modi, a seconda della distribuzione che usate: potete aggiungere un’apposita sezione Include in apache.conf oppure incollare direttamente il codice in questo file. Per chi utilizza distribuzioni Debian-like (Debian, Ubuntu, Knoppix etc.) e apache2 la strada più corretta è utilizzare le apache2-utils, in questo modo:

#cd /etc/apache2/site-available/
#ln -s /etc/squirrelmail/apache.conf squirrelmail
#a2ensite squirrelmail
#/etc/init.d/apache2 reload

Questo farà in modo che il file /etc/squirrelmail/apache.conf venga letto dal server apache e renda disponibile la vostra webmail, che potrete raggiungere all’indirizzo da voi specificato. Inserite username e password del vostro account et voilà, la webmail è servita 😉

Ottimizzazione

Maildir

L’utilizzo del formato maildir anzichè mbox è consigliato in quanto, aumentando l’efficienza del server Imap, aumenta di conseguenza l’efficienza della vostra webmail. Devo comunque dire che io uso mbox per caselle di poche centinaia di email senza grossi problemi.

HTTPS

Anche se la vostra casella IMAP è protetta da username e password, la comunicazione con il server web avviene ora in chiaro, esponendovi al rischio, che qualcuno ‘sniffi‘ le vostre credenziali o la posta che state leggendo. Potrete ovviare a questo instaurando una connessione criptata tramite il protocollo https. La configurazione del server apache esula dallo scopo di questo documento, vi indicherò solamente una tipica configurazione di apache.conf per obbligare la connessione criptata:

<VirtualHost *:443>
DocumentRoot /usr/share/squirrelmail
ServerName VOSTROSITO
</VirtualHost>
<VirtualHost *:80>
ServerName VOSTROSITO
ServerAdmin TUOACCOUNT@localhost
RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 2
</VirtualHost>

Proxy Imap

Per chi dovesse gestire diversi utenti con sistemi di capacità limitata può essere senz’altro utile installare un proxy imap che evita i continui login/logout che, per sua natura, squirrelmail effettua ad ogni interrogazione. Imapproxy è molto semplice da installare e utilizzare, anche se per farlo funzionare mi sono dovuto scontrare con due basilari limitazioni:

  • non supporta autenticazioni criptate CRAM-MD5
  • non supporta collegamenti imap sulla porta 993

Questo in pratica significa che non può funzionare con il pacchetto uw-imapd distribuito da Debian e, volendo utilizzare questo server imap, lo si deve ricompilare.

Links utili

Squirrelmail : home page con ampia documentazione (inglese)

Debian Administration : contiene guide per squirrelmail, server https e molto altro (inglese)

DebianSarge, Dovecot (imap) e Squirrelmail : guida un poco datata ma sempre utile (italiano)

Imapproxy : home page di un proxy imap (inglese)