Roundcube, simple mais super efficace !
Par Julien Vehent le jeudi, août 6 2009, 13:42 - Debian - Lien permanent
Ca fait maintenant quelques temps que le webmail de linuxwall est roundcube. J'aime bien cet outil car il est réellement épuré et ne reprend que les fonctions vraiment importante du mail.
Ici, pas de calendrier, de gestion partagées des taches, de notifications dans tous les sens comme on en trouve dans quasiment tous les webmails du moment, dans leurs folles courses vers le collaboratif.
Roundcube fait simplement son travail: envoyer et recevoir des emails, proprement, et gérer tout cela dans des dossiers IMAP.
Jusque récemment, certaines features me manquait tout de même cruellement. Et comme la sortie imminente de la 0.3 corrige certains de ces manquements, je me suis dit qu'il fallait bien que j'en parle :) (et puis, c'est l'été, tout calme au bureau, tout ça machin).
La demo
Parce que, les discours c'est bien mais le test c'est mieux, Roland Liebl à mis en ligne une demo de la version de dev de roundcube. Ca se trouve ici : http://mail4us.net/dev (avec le compte demo/demo). Bon, alors là, Roland il a chargé tout plein de pleuguines, alors forcément ça fait un peu le café et le couscous. Mais dans sa version de base, roundcube est vraiment épuré.
Les Plugins
voir la liste, et pour les codeurs, c'est par là
C'est LA grosse évolution de la version 0.3. Une API de plugin permet maintenant de développer des composants sans toucher au core. C'est comme cela qu'en quelques semaines, le nombre de contributions a été multiplié par.... pfiou.... beaucoup ! (jetez un coup d'oeil sur la mailing list et vous verrez)
Parmi les plugins les plus intéressants, on a un module GnuPG en cours de développements, et un module managesieve pour *enfin* intégrer la gestion des filtres.
Managesieve
Parce que les gens de roundcube font les choses proprement, ils ont toujours refusé d'intégrer du filtering de mail coté client. Le filtrage en php, ca prend des ressources, et ca n'est actif que quand l'interface est ouverte. Au lieu de cela, un protocole répondant exactement à ce besoin existe dans la grande majorité des serveurs mails (dovecot, cyrus-imap, ...), c'est Sieve.
Sieve, dont j'avais déjà parlé là-bas, est utilisable en ligne de commande via une sorte de shell qui permet d'entrer les règles de filtrage.

Mais, évidemment, c'est pas pratique pour des utilisateurs n'ayant pas accès au shell. Une interface pour sieve dans roundcube était donc indispensable, et c'est maintenant chose faite. Même si c'est assez limité en options de filtrage pour le moment.
Certificate Authentication
Ouais ! T'as bien lu ! l'authentification par certificat client. Bon, j'ai pas encore regardé ce qu'il y avait là-dedans, mais j'imagine qu'Apache (ou tout autre webserver) fait suivre les infos du certificat client envoyé lors du SSL Handshake à Roundcube, et ce plugin parse les champs X509 pour en sortie les infos d'authentification.
Bref, de la pure authentification forte comme on en met dans les banques et chez les impots. Faut absolument que je test ça !
Et pleins d'autres
La liste complète, et en constante évolution, est là. Pour le moment c'est un peu le far west, tout le monde code dans tous les sens. J'imagine qu'avec le temps, quelques gros plugins vont sortir du lot (j'ai d'ailleurs beaucoup d'espoir dans le plugin d'encryption).
Et les Core Features
J'en ai profité pour tester le STARTLS sur IMAP et SMTP. C'est une feature de la 0.2 mais comme je n'avais alors pas testé... Pour imap, c'est super simple, il suffit de suivre les commentaires du code. Pour smtp, j'ai un peu plus galéré (au point d'en faire un thread chez les devs) surtout parce qu'il existe deux supports différents pour SSL et TLS dans SMTP. SSL signifie création d'un canal chiffré au début de la communication entre le client et le serveur. TLS signifie réponse a la capability STARTTLS annoncée par le serveur, on a donc un début de communication en clair, puis un passage en mode starttls. C'est de dernier mode que je voulais, et pour l'activer, il faut configurer le fichier main.inc.php de la façon suivante :
// use this host for sending mails. // to use SSL connection, set ssl://smtp.host.com // if left blank, the PHP mail() function is used $rcmail_config['smtp_server'] = 'localhost'; // SMTP port (default is 25; 465 for SSL) $rcmail_config['smtp_port'] = 25; // SMTP username (if required) if you use %u as the username RoundCube // will use the current username for login $rcmail_config['smtp_user'] = '%u'; // SMTP password (if required) if you use %p as the password RoundCube // will use the current user's password for login $rcmail_config['smtp_pass'] = '%p'; // SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use // best server supported one) $rcmail_config['smtp_auth_type'] = '';
En supposant que le serveur SMTP (ici, postfix) soit configuré correctement :
# TLS server options smtpd_use_tls = yes smtpd_tls_auth_only = yes smtpd_tls_security_level = may smtpd_tls_key_file = [keyfile] smtpd_tls_cert_file = [pemcert] smtpd_tls_CAfile = [cafile] smtpd_tls_loglevel = 2 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom smtpd_tls_ask_ccert = yes smtpd_tls_req_ccert = no
Le code de roundcube va appeler le mode STARTTLS lorsque l'authentification est demandée (les variables 'smtp_user' et 'smtp_pass' sont renseignées). Si la configuration ne correspond pas exactement à cela (coté roundcube, et modulo l'adresse du serveur), alors le mode STARTTLS échoue. C'est un poil touchy mais assez logique au final.
De fait, lors de l'envoi d'un mail, on retrouve dans les headers les infos suivantes :
Received: from pki.linuxwall.info (localhost [127.0.0.1])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(Client did not present a certificate)
(Authenticated sender: julien@linuxwall.info)
by zerhuel.linuxwall.info (Postfix) with ESMTPSA id A5FAAEBC1B;
Thu, 6 Aug 2009 13:28:51 +0200 (CEST)
Comment ça "Client did not present a certificate" ?? Ha mais il va falloir corriger cela très vite ! J'espère, d'ailleurs, que cela fera parti du fameux plugin Encryption.
Et les threads ???
Haaa... les threads. Ca c'est, après le filtrage des mails, la feature qui me manque le plus. Mais, patience, car ça arrive ! En fait, c'est déjà développé et n'attend plus que la release de la 0.4 pour passer en stable.
Pour plus de lecture sur le sujet, voir ici : http://lists.roundcube.net/mail-archive/dev/2009-07/0000131.html
Voilà, j'espère que ça vous aura mis l'eau à la bouche. Roundcube, c'est bon, mangez-en !

Commentaires
Je ne comprends pas comment ça marche.
Une question toute bête.
Je souhaite par exemple installer ce script sur mon site pour autoriser mes visiteurs à créer une adresse email comportant mon nom de domaine utilisateur@monNomdeDomaine.com.
Je ne sais pas comment créer une page distincte pour proposer à ces visiteurs de créer leur adresse email par un formulaire tout bête genre nom, pseudo, adresse email.
Tu peux m'éclairer s'il te plait.
merci !
Bonjour,
Je suis utilisateur d'une messagerie sous Rouncube par l'intermédiaire d"un ami.Je souhaite lire ou écrire des mails depuis ma messagerie à partir d'un mobile pouvant envoyer et recevoir des mails. Comment configurer mon mobile notamment au niveau du serveur entrant.
Merci de me répondre
Cordialement
BD
bonjour
j'utilise roundcubewebmail depuis la version 0.3.0 . c'est un webmail formidable que j'utilise pleinement quand je suis en deplacement mais je suis deçu le le plugin pgp n'est pas encore fonctionnel . moi j'uilise les plugins managesieve password markasjunk fail2ban
felicitations aux developpeur de roundcubemail tres bon travail