Bon, tentative d'expliquer ce que j'ai en tête en quelques mots, désolé si c'est brouillons.
Déjà, de mon point de vue, la présence d'un répertoire « incoming » est indispensable : je reçois des mails qui seront rangés dans des boîtes très diverses, et je ne veux pas devoir systématiquement ouvrir plusieurs répertoires pour aller trouver tous les messages que j'ai besoin de lire. Le classement en plein de répertoires distincts se fait ensuite pour l'archivage.
Le truc fonctionne donc de la manière suivante : 1- demande de réception des messages sur le serveur, 2- rangement de ces messages dans le répertoire « incoming » où l'utilisateur peut ensuite les visualiser directement, 3- (après clic sur un bouton dans la barre d'outil, par exemple) rangement automatique des messages vers les différents répertoires d'archivage.
Cependant, il devrait être tout à fait possible d'introduire une fonction qui saute directement de l'étape 1 à l'étape 3 : récupération des messages sur le serveur, puis classement automatique, sans transiter par une boîte intermédiaire, c'est à réfléchir.
Maintenant, le classement : personnellement, étant abonné à plusieurs listes de diffusion et ne recevant que peu de mails qui sont me sont envoyés à moi seulement, je le fais en fonction du destinataire du mail, avec un répertoire correspondant à chaque destinataire (ça permet aussi facilement les classements du genre compte+specifique@ndd).
Cependant, ce tri automatique n'est pas forcément le plus pertinent selon les usages ; du coup, j'envisage de déléguer le classement des mails à un script utilisateur (un truc qui prend le fichier de mail en argument, et qui affiche sur la sortie standard le répertoire à utiliser – je ferai quelques scripts d'exemples, en attendant un truc de personnalisation plus facile à prendre en main). Ça pourrait donc tout à fait être utilisé pour un tri en fonction de l'adresse d'expéditeur comme ce dont tu parlais.
Le répertoire « incoming » (le nom sera à configurer, hein) sera celui dans lequel les messages resteront si le script ne sait pas où les classer, en attendant que l'utilisateur révise ses règles de traitement, ou bien vienne les ranger manuellement.
Les messages sont rangés sur le disque dur à peu près comme ils apparaissent dans le client mail, ce qui permet potentiellement de les visualiser avec autre chose en cas de besoin. Par exemple, si j'ai deux comptes différents, machin@ndd1 et truc@ndd2, que je le premier des deux est abonné à trois listes de diffusions et que je range en fonction des destinataires, ça donnera un truc du genre :
user@local: ~$ ls ~/Mails
machin@ndd1/ truc@ndd2/
user@local: ~$ ls ~/Mails/machin@ndd1
incoming/ machin@ndd1/ liste1@ndd/ liste2@ndd/ liste3@ndd/
user@local: ~$ ls ~/Mails/machin@ndd1/liste1@ndd
1.eml 2.eml 5.eml 12.eml
Bon, les mails sont rangés en fonction du numéro que leur donne le serveur, ce qui simplifie grandement l'usage à l'intérieur du client, mais n'aide pas forcément à les identifier correctement en dehors.
J'hésite encore pour la façon dont ranger les messages envoyés et les brouillons : soit une arborescence à part, soit un/des sous-répertoires dans les répertoires existants. Un classement automatique de ces messages envoyés, mais possiblement avec un autre script, devrait être intéressant également.
Niveau interface, je prévois un truc qui ressemble à un navigateur de fichiers, avec un panneau latéral affichant les différents répertoires utilisés, et une zone principale affichant la liste des mails (avec les informations utiles pour savoir de quoi il s'agit, bien sûr). Les mails s'ouvrent dans un nouvel onglet, avec un panneau latéral permettant de naviguer entre les différents messages d'une même conversation.
Quelques captures de la version actuelle du client, qui ressemble déjà plus ou moins à ça :