Roundcube : mon choix de plugins

Publié le 05 septembre 2011 par Openwebtech @openwebtechfr

Dans un précédant billet je présentais l’installation d’un serveur de mail,les règles élémentaires de filtrages à mettre en place mais également l’installation du webmail roundcube.

Roundcube est un webmail qui a fait ses preuves (free l’a utilisé un moment avant de passer à zimbra début 2009) et tire son épingles du jeu par un bon rapport convivialité/ressources utilisées et une variété de plugins pour enrichir les fonctionalités de bases du webmail en fonction de vos besoins.

Pour une liste exhaustive des plugins disponibles, je vous invite à jetter un oeil à : http://trac.roundcube.net/wiki/Plugin_Repository

Dans ce billet je vais vous présenter deux (plus exactement 3 plugins) que j’ai retenus pour mes besoins à savoir :

  • La gestion sur un même webmail plusieurs compte imap et donc plusieurs identités : settings, accounts
  • Des fonctions contextuelles (marquer le message, répondre à tous, transmettre le message [forwardinline ou forwardasattachment], déplacer vers …) : contextmenu

Myrouncube est un projet libre sous licence gnu gpl v3 qui propose un bundle important de plugins roundcube dont settings et accounts.

tehinterweb.co.uk auteur de contextmenu.

Généralités

Les plugins roundcube s’installent dans le dossier plugin du webmail :

cd plugins/
wget http://dl.dropbox.com/u/16464443/accounts.tar
wget http://dl.dropbox.com/u/16464443/contextmenu.tar.gz
wget http://dl.dropbox.com/u/16464443/settings.tar
tar -xvf accounts.tar & tar -xvf settings.tar & tar -zxvf contextmenu.tar.gz

Une fois l’archive du plugin décompressée dans le répertoire plugins, il faut renseigner l’installation du nouveau plugin dans une variable du fichier main.inc.php de roundcube comme suit:

$rcmail_config['plugins'] = array('dossierplugin1','dossierplugin2')

Si cette variable n’est pas renseignée votre plugin ne sera pas fonctionnel.

Installation du plugin « accounts »

Ce plugin permet de gérer de multiples comptes imap (sous entendu: non nécéssairement sur le même serveur que le webmail) depuis une liste de serveur imap préconfigurés.

Le plugin settings est une dépendance du plugin accounts car il permet l’affichage d’un menu de configuration pour les informations de votre/vos compte(s) imap.

On renomme le fichier config.inc.php.dist en config.inc.php :

mv plugins/settings/config/config.inc.php.dist plugins/settings/config/config.inc.php

Dans config/main.inc.php :

$rcmail_config['plugins'] = array('settings');

Dans préférences vous devriez avoir une nouveau menu : « Administration du compte »

A présent creez la table « accounts » dans la base de données roundcube qui s’occupera de sauvegarder les paramètres vos comptes imap.

Executez le code SQL suivant:

CREATE TABLE IF NOT EXISTS `accounts` (

`aid` int(10) unsigned NOT NULL auto_increment,

`account_dn` varchar(128) NOT NULL,

`account_id` varchar(128) NOT NULL,

`account_pw` varchar(128) NOT NULL,

`account_host` varchar(128) NOT NULL,

`account_host_smtp` varchar(128) NOT NULL,

`preferences` text,

`user_id` int(10) unsigned NOT NULL default '0',

PRIMARY KEY (`aid`),

KEY `user_id_fk_accounts` (`user_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

ALTER TABLE `accounts`

ADD CONSTRAINT `accounts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE;

De même dans config/main.inc.php :

$rcmail_config['plugins'] = array('settings','accounts');

La configuration des serveurs imap disponibles se fait via plugins/accounts/config/config.inc.php :

$rcmail_config['accounts_hosts'] = array(

'YourWebSite' => 'imap.yourdomain.com|127.0.0.1',

);

Cette configuration est ok dans la mesure où vous ne vous contentez pas simplement de rappatrier les mails sur votre webmail et utilisez le smtp local pour l’envoie.

Astuce: Le plugin force l’identification smtp par défaut ce qui a pour effet de vous empêcher d’envoyer des mails depuis ce compte si par exemple vous n’avez pas d’authentification mais juste un filtrage ip/reseau.

Pour empecher l’authentification:

vi plugins/accounts/accounts.php

Modifier la fonction smtp_connect($arSvrConfig):

//$arSvrConfig['smtp_user']=$conf['account_id'];

//$arSvrConfig['smtp_pass']=$rcmail->decrypt($conf['account_pw']);

$arSvrConfig['smtp_user']='';

$arSvrConfig['smtp_pass']='';

Pour parametrer un compte rdv dans préférences > Administration du compte

Installation du plugin « contextmenu »

De même dans config/main.inc.php :

$rcmail_config['plugins'] = array('settings','accounts','contextmenu');

Et c’est fini !