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 !