URL: https://linuxfr.org/users/epeios/journaux/epeios-meta-mail-user-agent-premiere-publication Title: Epeios Meta Mail User Agent : première publication. Authors: Claude SIMON Date: 2016年12月31日T23:02:55+01:00 License: CC By-SA Tags: c++, gui, cli, html, epeios, mmuaq et ligne_de_commande Score: 15 # Introduction Disposer de son propre serveur de *mails* permet de créer autant de compte *mails* que désirés, sans compter la possibilité de créer des [alias](https://fr.wikipedia.org/wiki/Alias_%28adresse_%C3%A9lectronique%29). Néanmoins, de ce que j'ai pu voir, les *webmails* ne permettent de gérer qu'un seul compte à la fois, et les clients de messagerie *desktop* permettent d'avoir accès à plusieurs comptes *mail* à la fois, mais seulement indépendamment les uns des autres. Une des principales fonctionnalités d'un [*MUA*](http://fr.wikipedia.org/wiki/Client_de_messagerie) est le classement des *mails*, en les répartissant dans différents dossiers, dossiers que l'on peut eux-mêmes réorganiser à volonté. Chaque compte [*IMAP*](http://fr.wikipedia.org/wiki/Internet_Message_Access_Protocol) a sa propre arborescence de dossiers dans laquelle l'on peut répartir ses courriers. Néanmoins, un courrier d'un compte *IMAP* ne peut être placé dans un dossier d'un autre compte *IMAP* (pour autant que je sache...). # L'application L'idée de départ est d'avoir une arborescence commune à plusieurs comptes *mails*, en proposant une vue globale de l'ensemble des courriers de l'ensemble des comptes *mails* dont l'application a la charge, tout en conservant la possibilité de distinguer les courriers en fonction du compte duquel ils sont issus. A l'instar des autres *MUA*, cette application permet de répartir les courriers dans différents dossiers. Contrairement aux autres *MUA* (me semble-t-il), un même dossier pourra contenir des courriers issus de différents comptes *mails*. En outre, cette application prendra, à terme, en charge toutes les fonctionnalités que l'on peut attendre d'un *MUA* (et je suis ouvert à toute proposition sur le sujet). # Avancement Cette application n'en est qu'à ses débuts, mais la présenter dés maintenant facilitera la correction d'éventuels problèmes de conception, et permettra de la développer de manière à ce que les fonctionnalités auxquelles le développeur n'avait pas songé puissent être efficacement implémentées. En l'état, l'application permet de prendre en compte plusieurs comptes *mails* (comptes *POP3* uniquement ; les comptes *IMAP* seront pris en charge ultérieurement), de visualiser sommairement les courriers qu'ils contiennent, et de pouvoir répartir ces derniers dans une arborescence que l'on peut organiser à volonté. Son apparence est très rustique, le développement d'interfaces graphiques étant un domaine qui ne m'est pas très familier, tant du point de vue *design* que technique. Cela a un impact sur l'ergonomie (comme l'utilisation de poignées pour le *drag & drop*), mais tout cela peut être aisément amélioré par quelqu'un d'expérimenté dans le domaine (contributions bienvenues). Une [démonstration en ligne](http://q37.info/xdh/mmuaq.html) est disponible pour ceux qui veulent voir l'application en action. Tout nouveau compte (dont la création est très simple) est préconfiguré avec des comptes *mail* de démonstration contenant quelques courriers. Vous pouvez également ajouter vos propres comptes *POP3* (attention : les connexions chiffrées ne sont pas encore prises en charge). # Autre aspects Outres les fonctionnalités présentées ci-dessus, cette application disposera de plusieurs *frontends*, chacun prenant en charge l'une des interfaces suivantes : * graphiques (*GUI*): * *desktop*, * *GNU/Linux* (disponible), * *MacOS* (disponible), * *Windows* (disponible), * *web* (disponible), * mobile : * *Android* (en cours de développement), * *iOS* (en cours d'étude), * console (*CLI* ; disponible). Le *framework* employé pour les versions *desktop* de l'interface graphique ne propose pas, dans sa version *GNU/Linux*, d’implémentation par défaut des boîtes de dialogues. De ce fait, certaines ne s’afficheront pas (comme celles relatives à la sélection de fichiers, par exemple), et d'autre utiliseront la console à partir de laquelle le *frontend* a été lancé. Ainsi, le message de demande de confirmation pour quitter l'application s'affichera dans la console, dans laquelle vous devrez confirmer ou non votre intention de quitter l'application. A terme, l'application affichera ces boîtes de dialogues sous leur forme habituelle (dés que je saurais comment afficher une boîte de dialogue sous *GNU/Linux* ; toute information à ce sujet est la bienvenue). Le *frontend* *CLI* (`/frontend/CLI/mmuaqcli[.exe]`) est à destination d'utilisateurs avancés. Cet utilitaire, qui s'appuie sur le *backend* au même titre que tous les autres *frontends*, permet de réaliser toutes les opérations disponibles avec l'interface graphique, mais à partir de la ligne de commande. Tous ces *frontends* peuvent être lancés de deux manières différentes. Soit de manière autonome, c'est-à-dire que le *frontend* charge directement le *backend* ; on est alors là dans un cas d'utilisation mono-utilisateur (sauf pour le *frontend* *web*). Soit, au lieu de le charger, le *frontend* peut se connecter au *backend*, alors lancé comme *daemon*, via une connexion réseau. Cela permet, par exemples, d’accéder à l'application via l'interface *desktop* lorsque que l'on est chez soi, sur son ordinateur de bureau, via l'interface mobile lorsque l'on est à l'extérieur, ou bien, bien que cela soit sans doute passé de mode avec la démocratisation des *smartphones*, via l'interface *web* à partir d'un cybercafé (ou sur l'ordinateur d'une connaissance). Il y a, en outre, un utilitaire en ligne de commande (`/processing/mmuaq/mmuaq[.exe]`) qui partage une partie du code avec le *backend* et qui facilite les tests, et donc le débogage des fonctionnalités clefs de l'application. Cet utilitaire peut être utile pour ceux qui veulent se plonger dans les arcanes de l'application. A noter que l'application est multi-comptes. Elle tourne sous *GNU/Linux* (et probablement sous tout système d'exploitation *POSIX*), *MacOS* et *Windows*, sur architectures *IA-32*, *AMD64* et *ARM* (*Raspberry Pi*, *ODROID*...). # Conclusion Cette application est développée pour mon usage personnel, mais elle peut sans doute intéresser d'autres personnes, d'où sa présentation ici. Si c'est votre cas, n'hésitez pas à vous manifester. L'application est, par défaut, distribuée sous licence [*AGPL*](http://www.gnu.org/licenses/agpl-3.0.html). De ce fait, vous pouvez facilement en examiner tous les aspects, et les commenter ici même si vous le désirez, pour peu que vos commentaires soient, bien entendu, constructifs. Des informations complémentaires, que je m’efforcerais de compléter en fonction de vos retours et au fur et à mesure de l'évolution de l'application, sont disponibles à l'adresse [http://q37.info/computing/epeios/apps/mmuaq/](http://q37.info/computing/epeios/apps/mmuaq/), dont les liens suivant sont tirés : * Téléchargement : http://q37.info/download/computing/apps/mmuaq/, * sources : http://github.com/epeios-q37/epeios/tree/master/apps/mmuaq/, * et, pour rappel, démonstration en ligne : http://q37.info/xdh/mmuaq.html.