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 !