J’utilise le serveur « courier-imap » comme serveur IMAP. J’ai eu besoin d’avoir des boîtes mails communes. C’est pratique comme tout : on défini les accès par utilisateur (consultation, écriture de nouveaux mails etc), puis roule, tout le monde patauge dans la même mare.
C’est bien fait, exemple : un utilisateur qui lit un message voit ce message passer en statut « lu », mais uniquement pour lui, pas pour ses petits copains.
Le principe est le suivant :
1) Je crée une arborescence « Maildir » spécifique pour les partages (surtout pas dans mon « Maildir » standard, c’est mal).
2) Je crée, dans cette arborescence, un ou plusieurs répertoires de mails auxquels je donnerai des droits propres, par utilisateur.
3) J’affecte les droits qui vont bien aux utilisateurs, pour chaque répertoires de mails.
4) Les utilisateurs qui ont ainsi des accès à des boîtes partagées (et moi le premier) déclarent ces partages en deux temps :
a) Dans leur Maildir « normale », ils indiquent des liens vers des « Shared-Maildir » où ils ont des répertoires partagés.
b) Puis dans leur client IMAP (que ce soit du web genre Squirrelmail ou du lourd genre Thunderbird…), ils s’abonnent aux répertoires de mails qui les intéressent et pour lesquels ils ont des droits.
5) Enfin, c’est probablement optionnel mais néanmoins confortable, les utilisateurs se créent une seconde « identité » (terme dans Thunderbird) dans laquelle ils indiquent que les messages envoyés sous cette identité iront dans la boîte partagée. Sinon, un déplacement du INBOX.Sent standard vers le répertoire partagé doit fonctionner aussi je pense.
Après la théorie, la pratique.
Dans l’exemple ci-dessous, je suis l’utilisateur « marcel » (qui n’est pas le root) et je veux partager un répertoire de mails « BoulotCommunAvecMarcel » avec l’utilisateur « dupont ».
1) Je crée un « Maildir » « partageable » :
marcel:$ maildirmake -S /libre/SharedMaildirDeMarcel
La notion de « partageable » (-S) se traduit simplement par quelques permissions. Ca fait quelque chose comme un
chmod go+rx
qui va bien là où un « Maildir » normal est en permissions 700.
2) Dans cette coquille vide, je crée un répertoire « BoulotCommunAvecMarcel » en spécifiant « qu’il y aura des droits d’écriture » (sans pour l’instant définir les droits par utilisateur) :
marcel:$ maildirmake -f BoulotCommunAvecMarcel -s write /libre/SharedMaildirDeMarcel/
On peut boucler sur cette étape pour créer d’autres répertoires partagé bien sûr : ProjetToto, MailsDebiles etc.
3) Je donne les droits :
marcel:$ maildiracl -set /libre/SharedMaildirDeMarcel INBOX.BoulotCommunAvecMarcel user=marcel +aceilrstwx
Je sais pas si c’est nécessaire, étant le proprio.
Le détail des droits « aceilrstwx » est dans le
man maildiracl
.
Puis, pour mon utilisateur dupont, je lui donne le droits notamment d’écriture :
marcel:$ maildiracl -set /libre/SharedMaildirDeMarcel INBOX.BoulotCommunAvecMarcel user=dupont +ilrs
Vous pouvez contrôler le résultat grâce à la commande suivante :
marcel:$ maildiracl -list /libre/SharedMaildirDeMarcel INBOX.BoulotCommunAvecMarcel
Ce qui donne :
owner aceilrstwx administrators aceilrstwx user=marcel aceilrstwx user=dupont ilrs
Enfin, vous pouvez itérer sur ces commandes pour partager d’autres répertoires avec d’autres utilisateurs.
4) Les utilisateurs déclarent qu’il veut accéder à des shared-maildirs :
dupont:$ maildirmake --add mesbalpartagees=/libre/SharedMaildirDeMarcel ~/Maildir/
(attention : « moins moins add », wordpress me coupe un des « -« , excusez-moi)
En gros, ça déclare dans votre ~/Maildir/shared-maildirs que vous pouvez vous abonner à des répertoires partagés dans /libre/Sharedblablabla et que vous donnez le petit nom « mesbalpartagees » à ce « lien ».
Ensuite il faut s’abonner à ces répertoires partagés. Exemple en quelques mots depuis Thunderbird : bouton droit depuis le « courrier entrant » de votre compte, puis « s’abonner ». En plus de « INBOX », vous verrez « shared », et dedans, comme par magie, les répertoires de mails où vous avez des droits (issus de « maildiracl »).
Notez que « marcel », le propriétaire, devra le faire aussi. C’est pas parce-qu’il est proprio qu’il s’est abonné à ce répertoire.
5) Gérer les identités (dans Thunderbird) :
Dans les « paramètres du compte », bouton « gérer les identités ». L’idée est de paramétrer la chose pour dire : les éléments envoyés par cette identité seront stockés dans la boîte mail partagée.
Enfin, à la composition d’un mail, vous choisirez la bonne identité pour que ça se comporte comme prévu.
Sinon, sans jouer avec tout ça, vous déplacez le message à publier de « INBOX.Sent » à « shared.BoulotCommunAvecMarcel ». Pigé ?
Ca a l’air compliqué, mais c’est relativement simple en fait.
Dommage qu’il n’y ait pas – à ma connaissance – un plug-in qui va bien pour Thunderbird ou pour un webmail pour gérer tout ça avec des clics.