Après recherche de solutions remplaçant un Roundcube pour mon webmail perso, je suis tombé sur plusieurs projets :
- MailPile, un webmail python, en cours de développement
- RainLoop, un webmail PHP/Ajax, qui semble plus fini
 
Installation de RainLoop
L’installation de RainLoop est assez simple :
cd /var/www/html/rainloop/
find . -type d -exec chmod 777 {} ;
find . -type f -exec chmod 666 {} ;
wget -qO- http://repository.rainloop.net/installer.php | php
Ensuite, il suffit de créer un vhost sur votre apache (ici en SSL sur myhost.beufa.net) :
<VirtualHost *:443>
        ServerAdmin postmaster@beufa.net
        ServerName  myhost.beufa.net
        DocumentRoot /var/www/html/rainloop
        SSLEngine on
        SSLCipherSuite ALL:!ADH:RC4+SHA:+HIGH:+MEDIUM:+LOW:+EXP:+eNULL
        SSLProtocol all -SSLv2
        SSLStrictSNIVHostCheck on
        SSLOptions StrictRequire
        SSLCertificateFile      /etc/ssl/certs/myhost.cert
        SSLCertificateKeyFile   /etc/ssl/private/myhost.key
        #GnuTLSEnable on
        #GnuTLSPriorities SECURE:!ANON-DH:!MD5
        #GnuTLSCertificateFile cert.pem
        #GnuTLSKeyFile cert.pem
        #GnuTLSCertificateChainFile cert.pem
        #GnuTLSCACertificatePath /
        <Directory /var/www/html/rainloop>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
        <Directory /var/www/html/rainloop/data>
                Options -FollowSymLinks
                AllowOverride None
                Order allow,deny
                Deny from all
        </Directory>
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        ErrorLog /var/log/httpd/myhost.beufa.net/error_log
        CustomLog /var/log/httpd/myhost.beufa.net/access_log combined
</VirtualHost>
Et vous obtiendrez alors le webmail après une configuration sur https://myhost.beufa.net/?admin (Le login / mot de passe par défaut est admin :: 12345, il faut donc le changer !)
Une version de démonstration est disponible ici : http://rainloop.net/try-now/
Installation de MailPile
MailPile est encore en dĂ©veloppement, et honnĂŞtement, ca a l’air loin d’ĂŞtre fini. Curieux, j’ai quand mĂŞme gratter pour l’installer :
# Installation des dépendances (suivant votre système, ici en CentOS 6.5)
yum install python-imaging python-jinja2 python-lxml python-devel python-pip python-setuptools
# Clone git du repository github
cd /opt/
git clone https://github.com/pagekite/Mailpile.git 
cd Mailpile
# Installation des dépendances pip (upgrade de jinja2 pour éviter l'erreur sur les templates)
pip install -r requirements.txt
pip install jinja2 --upgrade
# Setup de Mailpile
./mp --setup
# On ajoute un compte et son dossier de stockage
./mp --set "profiles.0.email = mymail@beufa.net"
./mp --set "profiles.0.name = My Name FirstName"
./mp --add /opt/vmail/mymailhost.net/myname/  --rescan all
# On démarre le démon www
./mp --www
Le démon écoutant sur localhost et le port 33441, le plus simple est de créer un Reverse Proxy Apache pour le test :
<VirtualHost *:443>
        ServerAdmin postmaster@beufa.net
        ServerName  myhost.net
        #DocumentRoot /var/www/html/mailpile
        SSLEngine on
        SSLCipherSuite ALL:!ADH:RC4+SHA:+HIGH:+MEDIUM:+LOW:+EXP:+eNULL
        SSLProtocol all -SSLv2
        SSLStrictSNIVHostCheck on
        SSLOptions StrictRequire
        SSLCertificateFile      /etc/ssl/certs/myhost.net.cert
        SSLCertificateKeyFile   /etc/ssl/private/myhost.net.key
        #GnuTLSEnable on
        #GnuTLSPriorities SECURE:!ANON-DH:!MD5
        #GnuTLSCertificateFile cert.pem
        #GnuTLSKeyFile cert.pem
        #GnuTLSCertificateChainFile cert.pem
        #GnuTLSCACertificatePath /
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyRequests Off
        ProxyPreserveHost On
        ProxyPass / http://localhost:33411/
        ProxyPassReverse / http://localhost:33411/
        <Location />
                Order allow,deny
                Allow from all
        </Location>
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        ErrorLog /var/log/httpd/myhost.net/error_log
        CustomLog /var/log/httpd/myhost.net/access_log combined
</VirtualHost>
Vous pouvez alors tester sur le vhost reverse proxy ainsi créé. Par contre, par encore de formulaire d’authentification, ce qui fait que votre mail est accessible “all around the world” ! ProtĂ©gez l’interface Ă  minima avec un htaccess ou une authentification basique dans le vhost.
En résumé
RainLoop semble un produit fini, mais il y a certaines choses manquantes :
- Pas d’import possible des contacts
- Fonctionnalités et configuration très très basiques
- Gestion des threads de conversation limitée et pas forcément pratique
- Pas d’affichage des headers mail comme sur Roundcube
- Pas de vérification des sous dossiers IMAP
Pour MailPile, mĂŞme si le projet est prometteur (Support OpenPGP, chiffrement des pièces jointes …), il manque encore :
- Un formulaire d’authentification !!!
- Une interface d’administration Ă  minima comme sur RainLoop
- La gestion des dossiers IMAP
- Un produit fini et utilisable tout simplement.
Je vais suivre donc ce dernier plus spĂ©cifiquement, RainLoop me semblant agrĂ©able pour l’instant en plus de RoundCube, que je garde pour l’usage avancĂ© (gestion des filtres Sieve/ManageSieve). La bonne nouvelle de ces 2 projets est qu’ils supportent tous les deux mon serveur Dovecot / Postfix avec SASL pour IMAPS et SMTP/STARTTLS.
Bref, deux produits intéressants à suivre !