Date de publication du RFC : Juin 2008
Auteur(s) du RFC : M. Crispin (Panda Programming), K. Murchison (Carnegie Mellon University)
Chemin des normes
Réalisé dans le cadre du groupe de travail IETF imapext
Première rédaction de cet article le 10 juin 2008
Le protocole IMAP d'accès aux boîtes aux lettres distantes s'étoffe dans toutes les directions. Ce RFC normalise les extensions permettant au serveur IMAP de faire le tri des messages lui-même, avant de les envoyer chez le client.
Un serveur IMAP peut être simpliste,
laissant le client faire l'essentiel du travail, par exemple de tri
des messages pour les afficher dans l'ordre souhaité par
l'utilisateur. Mais certains serveurs IMAP, par exemple ceux qui
stockent les messages dans une base de données
SQL peuvent aussi faire ce travail facilement et les
extensions SORT
et THREAD
permettent à un client de demander ce tri. C'est utile pour certains
clients (cf. RFC 1733) et cela garantit aux utilisateurs un
tri standard.
La section 2 du RFC présente d'abord quelques termes de
base. Ainsi, 2.1 explique le concept de « sujet de base ». Le sujet
des messages (dans le champ Subject:
) étant
parfois modifié en cours de discussion (notamment par l'ajout des
caractères indiquant une réponse, typiquement
Re:
), le tri par sujet doit se faire sur le
sujet de base, pas sur le contenu littéral du sujet. Ce sujet de base
s'obtient notamment en décodant les séquences du RFC 2047 et en supprimant les Re:
ou
Fwd:
initiaux. (La section 2.1 précise bien que,
vue la fantaisie avec laquelle certains logiciels modifient le sujet,
on n'atteindra pas 100 % de succès.)
La section 3 contient la définition formelle des deux nouvelles
extensions. La nouvelle commande SORT
pourra
indiquer le critère de tri, parmi un ensemble pré-défini (date,
expéditeur, taille, sujet, etc). Si on trie selon l'expéditeur,
seulement la partie locale de l'adresse
(addr-mailbox
) est utilisée donc par exemple
l'expéditeur de mes messages, pour ce tri, sera
stephane+blog
et pas
stephane+blog@bortzmeyer.org
et encore moins
Stéphane Bortzmeyer
<stephane+blog@bortzmeyer.org>
. Trier sur le nom
affiché, par exemple, ouvrirait des possibilités très intéressantes pour
les amateurs d'internationalisation. Ainsi, la liste suivante (tel
qu'elle serait triée par un tri alphabétique stupide) :
peut être triée de nombreuses façons. Un tri qui croirait être malin en utilisant le nom de famille donnerait :
alors que le tri correct, tenant compte de la position du nom de famille dans les différentes cultures, serait :
Les auteurs ont jugé que demander à implémenter un tel tri, internationalement correct, serait trop exiger. Le tri se fait donc seulement sur le nom de la boîte aux lettres.
Plusieurs critères peuvent être spécifiés, chacun servant de clé successive pour départager les ex-aequo. Par exemple, à la commande IMAP :
TAG145 SORT (SUBJECT FROM DATE) UTF-8 ALL
le serveur triera selon le sujet, puis selon l'expéditeur (à sujet identique), puis selon la date si les deux premiers critères donnent le même résultat.
La nouvelle commande THREAD
, quant à elle,
permet d'organiser les messages en fils (threads)
de discussion, selon les références (la méthode normale, avec les
champs References:
et
In-Reply-To:
) ou selon le sujet (« rangement du
pauvre », pour le cas où les références manquent). Notons qu'une telle
méthode nécessite que les utilisateurs se servent du courrier
correctement et, par exemple, ne
volent pas les fils.
La section 4 décrit les réponses possibles à ces deux commandes et la section 5 donne la grammaire formelle en ABNF.
Désolé, je n'ai pas encore cherché quels serveurs IMAP mettaient en
œuvre les nouvelles extensions mais elles sont apparemment
largement déployées sur le terrain depuis de nombreuses années (l'extension
SORT
est annoncée dans la réponse
CAPABILITY
de beaucoup de serveurs IMAP, cf. section
7.2.1 du RFC 3501 pour cette réponse).
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)